From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailrelay.tugraz.at (mailrelay.tugraz.at [129.27.2.202]) by sourceware.org (Postfix) with ESMTPS id AAC943858C56 for ; Sat, 27 Jan 2024 16:10:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AAC943858C56 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=tugraz.at Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tugraz.at ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AAC943858C56 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=129.27.2.202 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706371844; cv=none; b=CkLr8fQd9e0NzjhJbOXZ0rfZUdHA8EuJq5DNzKQ2Z8C29nstqKyBNyOarBQ1fY8/RjZ6A7Fdt+uRAGB7ptrFCdeBfzlJ7mThjMfajc/krggw7cN+mIJLMeIbmxlpq+7GI/kj/YUGOM8qR881Q8ECljfU1vcAwUxAINaOaJ6tOTw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706371844; c=relaxed/simple; bh=ay9cVStQSLEzaUeVkvlsOWl6n1iLYri37cxogflu0Gs=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=ZAi7IOkl/pKBCZVhJlR9gID3DnWJr4IF5xnIS+rFxXEjksbob7V8SQV8q0VuVq5ShMplJyCnCpmz6AHsX2S/Jo8u708704hT+RtFoTYyceKCawh95YBdqbcc9i21xax5yOiwDsD2xSNpYfx54LUlaFajumi/UT519nBvdJS5C9w= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from vra-168-47.tugraz.at (vra-168-47.tugraz.at [129.27.168.47]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4TMffq1YsVz1LLyL; Sat, 27 Jan 2024 17:10:26 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4TMffq1YsVz1LLyL DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1706371827; bh=dPW89wStMHOmAa31m9cBcx1k+uQLOgACErI/OGcIZns=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=ILuHJ7EfguaZAeD2Ubg43a1HuNxy9is4NXwL/KBaZb9OBnY3AUwby4r7fcwczocRh Qdz7ahHUJmuRfVWU4Mc4GYA/eQqv/v7M2rnEyhHRNaO949hrGxu+KF8OlTVBGhdzPE +G4Gmn5Ri6Lm5bhKgfJdns0DXiB+chXLfnj4wVMk= Message-ID: <33351410467b29b38728c6a48e71a2b5c4518c2b.camel@tugraz.at> Subject: Fix ICE with -g and -std=c23 when forming composite types [PR113438] From: Martin Uecker To: gcc-patches@gcc.gnu.org Cc: Joseph Myers Date: Sat, 27 Jan 2024 17:10:26 +0100 In-Reply-To: <02a9b94e4d653b6f1b9f89a1b62187f46e871738.camel@tugraz.at> References: <02a9b94e4d653b6f1b9f89a1b62187f46e871738.camel@tugraz.at> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4-2 MIME-Version: 1.0 X-TUG-Backscatter-control: G/VXY7/6zeyuAY/PU2/0qw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Debug output ICEs when we do not set TYPE_STUB_DECL, fix this. Fix ICE with -g and -std=3Dc23 when forming composite types [PR113438] =20 Set TYPE_STUB_DECL to an artificial decl when creating a new structure as a composite type. =20 PR c/113438 =20 gcc/c/ * c-typeck.cc (composite_type_internal): Set TYPE_STUB_DECL. =20 gcc/testsuite/ * gcc.dg/pr113438.c: New test. diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc index 66c6abc9f07..cfa3b7ab10f 100644 --- a/gcc/c/c-typeck.cc +++ b/gcc/c/c-typeck.cc @@ -585,6 +585,11 @@ composite_type_internal (tree t1, tree t2, struct comp= osite_cache* cache) /* Setup the struct/union type. Because we inherit all variably modified components, we can ignore the size expression. */ tree expr =3D NULL_TREE; + + /* Set TYPE_STUB_DECL for debugging symbols. */ + TYPE_STUB_DECL (n) =3D pushdecl (build_decl (input_location, TYPE_DECL, + NULL_TREE, n)); + n =3D finish_struct(input_location, n, fields, attributes, NULL, &expr)= ; =20 n =3D qualify_type (n, t1); diff --git a/gcc/testsuite/gcc.dg/pr113438.c b/gcc/testsuite/gcc.dg/pr11343= 8.c new file mode 100644 index 00000000000..5612ee4fa38 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr113438.c @@ -0,0 +1,7 @@ +/* PR113438 + * { dg-do compile } + * { dg-options "-std=3Dc23 -g" } */ + +void g(struct foo { int x; } a); +void g(struct foo { int x; } a); +