[{"id":3680010,"web_url":"http://patchwork.ozlabs.org/comment/3680010/","msgid":"<aee8tx5xIyqQo5h8@redhat.com>","list_archive_url":null,"date":"2026-04-21T18:06:47","subject":"Re: [PATCH] c: Fix counted_by attribute error recovery [PR124969]","submitter":{"id":14370,"url":"http://patchwork.ozlabs.org/api/people/14370/","name":"Marek Polacek","email":"polacek@redhat.com"},"content":"On Tue, Apr 21, 2026 at 07:31:01PM +0200, Jakub Jelinek wrote:\n> Hi!\n> \n> The last patch made me try also pointer arithmetics on incomplete\n> type.  And here we ICE before actually diagnosing the error\n> because we try to dereference element_size.\n> \n> Furthermore, TYPE_SIZE_UNIT (element_type) is in sizetype, so\n> we shouldn't use build_one_cst (size_type_node) for the void *\n> case, but size_one_node (aka size_int (1)).\n> \n> Ok for trunk if it passes full bootstrap/regtest?\n> \n> 2026-04-21  Jakub Jelinek  <jakub@redhat.com>\n> \n> \tPR sanitizer/124969\n> \t* c-typeck.cc (build_access_with_size_for_counted_by): Use\n> \tsize_one_node instead of build_one_cst (size_type_node).  Punt\n> \tif element_size is NULL_TREE.\n> \n> \t* gcc.dg/ubsan/pr124969-2.c: New test.\n> \n> --- gcc/c/c-typeck.cc.jj\t2026-04-01 19:09:38.324343805 +0200\n> +++ gcc/c/c-typeck.cc\t2026-04-21 19:16:20.325644120 +0200\n> @@ -3270,8 +3270,10 @@ build_access_with_size_for_counted_by (l\n>  \n>    tree element_type = TREE_TYPE (TREE_TYPE (ref));\n>    tree element_size = VOID_TYPE_P (element_type)\n> -\t\t      ? build_one_cst (size_type_node)\n> +\t\t      ? size_one_node\n>  \t\t      : TYPE_SIZE_UNIT (element_type);\n> +  if (element_size == NULL_TREE)\n> +    return ref;\n\nI wasn't sure what the right thing to return would be here, but returning\nNULL_TREE would ICE elsewhere.  So, OK.\n  \n>    tree first_param = is_fam\n>  \t\t     ? c_fully_fold (array_to_pointer_conversion (loc, ref),\n> --- gcc/testsuite/gcc.dg/ubsan/pr124969-2.c.jj\t2026-04-21 19:19:31.114417366 +0200\n> +++ gcc/testsuite/gcc.dg/ubsan/pr124969-2.c\t2026-04-21 19:20:29.357432321 +0200\n> @@ -0,0 +1,15 @@\n> +/* PR sanitizer/124969 */\n> +/* { dg-do compile } */\n> +/* { dg-options \"-fsanitize=undefined\" } */\n> +\n> +struct T;\n> +struct S {\n> +  int c;\n> +  struct T *b __attribute__ ((counted_by (c)));\n> +} a;\n> +\n> +void *\n> +foo ()\n> +{\n> +  return a.b + 10;\t/* { dg-error \"invalid use of undefined type 'struct T'\" } */\n> +}\n> \n> \tJakub\n> \n\nMarek","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=XaW21tpn;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=XaW21tpn","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.133.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0Vgf6CKkz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 04:07:25 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id C4A1C4BA902A\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 18:07:23 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id 5736E4BA2E24\n for <gcc-patches@gcc.gnu.org>; Tue, 21 Apr 2026 18:06:55 +0000 (GMT)","from mail-ua1-f69.google.com (mail-ua1-f69.google.com\n [209.85.222.69]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-262-ijOiYREqPFu44TN3YIqMsA-1; Tue, 21 Apr 2026 14:06:51 -0400","by mail-ua1-f69.google.com with SMTP id\n a1e0cc1a2514c-953bde1773cso6632542241.1\n for <gcc-patches@gcc.gnu.org>; Tue, 21 Apr 2026 11:06:51 -0700 (PDT)","from redhat.com ([2603:7000:9500:10::1db4])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8b02ac72915sm111537826d6.15.2026.04.21.11.06.49\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 21 Apr 2026 11:06:49 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org C4A1C4BA902A","OpenDKIM Filter v2.11.0 sourceware.org 5736E4BA2E24"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 5736E4BA2E24","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 5736E4BA2E24","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776794815; cv=none;\n b=hQsYVf4j4YyH1ggYGSh5LoxlZ5UG8fXoWRJZrAD3zMXjYi5k7Rmt83fa7LgrQvrVvroynGF6LcrLMY3Sp9CA4QYXp+eJTRc6t/xZ48Mn3eQPcJGKXotI+TIT2px4PksAop71ccx++cwFYUcAfSFVCAsWvWlX9rYNsaUuYKAFm2o=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776794815; c=relaxed/simple;\n bh=HcjXawkAhkgeRdoIGOq237gAUJKAm3poLcyFP5CpLb0=;\n h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;\n b=eG2pFtw89FBfjTS12oMiMCQYyWm1NUPwVPZAP0LNlqGFQ2/ufSzzn8mGb3Q852cP0mjGk62yLWIHRHupyq+KkQHcrXG1pYfx21ZaPTn6JXvGZt+Xo7pzSudEOBjj8Olx6x29Qq7toEw4/KBMvq9yAh98JUtDpGSvzNGjmtoB0Bk=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776794815;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=CF86SMp+pcbVA36CWeeFYwiRMm1VIm0MFtoqauKve+o=;\n b=XaW21tpnYCJPzYPNXz2x4hHmN/3+muSYv4mNOIReqdudGRKFY+wIT0nemoKb66VBxHTQQF\n nhyoEFXHSEYTn+ouZoyWEMHfs69+vpSC+ag+HDraWaIjd2Ge4bnu0HIC2nVRRyGTOabp6D\n Q81nTiCxbfhwOS1mDFHogZR2j6MyNfI=","X-MC-Unique":"ijOiYREqPFu44TN3YIqMsA-1","X-Mimecast-MFC-AGG-ID":"ijOiYREqPFu44TN3YIqMsA_1776794810","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776794810; x=1777399610;\n h=user-agent:in-reply-to:content-disposition:mime-version:references\n :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=CF86SMp+pcbVA36CWeeFYwiRMm1VIm0MFtoqauKve+o=;\n b=pVqPPIqd0emyvvfl+WlF2lQ9H+YDU8dp8CYYVr/P0PaYbGZ+fSw7q2noIPSIk8G1FP\n 6VimbtFpEg+g3nHJy/gFXm0a1n0frYSJpzW6EjEYGJlwhW4lrn1KApoL/G4w88DsvGh5\n Igbc2CIZi6Z6/ClMdnXfnew7180vqX56slwPvxNZzT66/1h0aobuu8TUl8TxitqWORCq\n qfhJl97qbMk8iE2Jp8H0jgaRUCvIQbAgTBex/oapXT1S+iKQi3XTMs+/tdtrEOT1wAOq\n ZWoszH9YHUf7yo/5G3xvcGKVX5A6gPWhgOMLsaT1hv4TKVD3PiOahwQQZcuGRDVLdjKf\n htzg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8Rdcab+YcSH/Wokwkn5qFq166nmqcyTPzcTYwIT26fFTYZMnf3yaYDOGBhydEAf2LOINIZs71/83564w==@gcc.gnu.org","X-Gm-Message-State":"AOJu0YyiBRchnZCqqTP2KTtMdYHXxnTsJw+gm2bBzozC/Z3CBRf1wc6N\n Q+wUrkAPf6oCYzb167UcIrhcG6sgHDDmSewm0PKnsnQMvrBsDmR+CkWfUD9GpYRCW44WxvzVzxx\n Q7WX9fqtkw+iaFtK9mfs8Wvy7jQGoxmMOD0dRAxqTnOyKyiH72+oDR85zojU=","X-Gm-Gg":"AeBDievv1pMCZ1ckHsyZ04FcBGP1TXbv4k6Gj37AAwH4UNQeQOutuQzT8nkrZ3GcR92\n 0ARu8dlYUQduABHsBUMfpXYZGBxF6BfG2Rhj8vpZe3UJrPxBtpXnufIgLlhVWRVo107bS3nzPJZ\n AnbGrz1aWLrHEpmkXqNrTRcT3b0i1iQ32VDXP2+rzITWZPnTEee0pdWUMEPhMRf9s0GragJETzF\n 3rLkivVgskinl3w9ZbaSzsMDAgpB7ey9/OztA59sMDghRuEvpSXpTvAG68KHL7r7+13Zszrq04f\n nX+Rz6rX9qYv7zChDTMJe5eipDZ8KLYqUEAfir3Rkq28bDTl+Y20OPoSSTZnk55VfRggZUgVC6c\n qIcmT8tGxO9zm","X-Received":["by 2002:a05:6102:80aa:b0:604:f155:9374 with SMTP id\n ada2fe7eead31-616f67c7f28mr10370247137.15.1776794810473;\n Tue, 21 Apr 2026 11:06:50 -0700 (PDT)","by 2002:a05:6102:80aa:b0:604:f155:9374 with SMTP id\n ada2fe7eead31-616f67c7f28mr10370190137.15.1776794810026;\n Tue, 21 Apr 2026 11:06:50 -0700 (PDT)"],"Date":"Tue, 21 Apr 2026 14:06:47 -0400","From":"Marek Polacek <polacek@redhat.com>","To":"Jakub Jelinek <jakub@redhat.com>","Cc":"\"Joseph S. Myers\" <josmyers@redhat.com>,\n Richard Biener <rguenther@suse.de>, gcc-patches@gcc.gnu.org","Subject":"Re: [PATCH] c: Fix counted_by attribute error recovery [PR124969]","Message-ID":"<aee8tx5xIyqQo5h8@redhat.com>","References":"<aee0VThalXlyO9JV@tucnak>","MIME-Version":"1.0","In-Reply-To":"<aee0VThalXlyO9JV@tucnak>","User-Agent":"Mutt/2.3.1 (2026-03-20)","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"U366SwPb_zYvLLFT470-cPZTfbrBWTIJa9imW2C-4M4_1776794810","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]