From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id EE35A3858D39; Fri, 3 Nov 2023 08:15:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EE35A3858D39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1698999344; bh=y8g8zXepC1GAoPNV6FGtLmOT2AwhA0l1NmaXqi4AO/Y=; h=From:To:Subject:Date:From; b=x4bWo2weXtBD36dRc5AoQxRjweuprEaIZhWD3aSqjv5IdcbPbpcI4bflCCjpzO4IZ YCemB1TAW3pm3irQ/AVXHwbOF4othDT/54O/nr9xtsaDqWlmg82HPsAQ4rdov3lOJo 22XcrTxzXDfSHSYQdVaPpWojbwtHqWuSh9fa+1b4= From: "sjames at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/112365] New: [14 regression] ICE on invalid C++ Date: Fri, 03 Nov 2023 08:15:41 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: sjames at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D112365 Bug ID: 112365 Summary: [14 regression] ICE on invalid C++ Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sjames at gcc dot gnu.org Target Milestone: --- This came from a (bad) reduction from a user downstream for another bug we'= ll file shortly. ``` template struct ResolvedColorType; template < typename ColorType > ResolvedColorType< ColorType > resolvedColor(ColorType; template < typename ColorType > struct ResolvedColorType { constexpr ResolvedColorType : ColorType {} } struct { resolved( { resolvedColor(this) ``` ``` $ g++-14 /tmp/foo.cxx /tmp/foo.cxx:2:96: error: expected =E2=80=98)=E2=80=99 before =E2=80=98;=E2= =80=99 token 2 | template < typename ColorType > ResolvedColorType< ColorTy= pe > resolvedColor(ColorType; |=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 ~ ^ |=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 ) /tmp/foo.cxx:4:3: error: non-static data member =E2=80=98=E2=80=99 declared= =E2=80=98constexpr=E2=80=99 4 | constexpr ResolvedColorType : ColorType {} } | ^~~~~~~~~ /tmp/foo.cxx:4:44: error: expected =E2=80=98;=E2=80=99 at end of member dec= laration 4 | constexpr ResolvedColorType : ColorType {} } | ^ | ; /tmp/foo.cxx:4:54: error: expected =E2=80=98;=E2=80=99 after struct definit= ion 4 | constexpr ResolvedColorType : ColorType {} } | ^ | ; /tmp/foo.cxx:5:45: error: expected identifier before =E2=80=98{=E2=80=99 to= ken 5 | struct { resolved( { | ^ /tmp/foo.cxx:5:44: error: expected =E2=80=98)=E2=80=99 before =E2=80=98{=E2= =80=99 token 5 | struct { resolved( { | ~^~ | ) /tmp/foo.cxx:5:35: error: ISO C++ forbids declaration of =E2=80=98resolved= =E2=80=99 with no type [-fpermissive] 5 | struct { resolved( { | ^~~~~~~~ /tmp/foo.cxx:6:22: error: expected =E2=80=98}=E2=80=99 at end of input 6 | resolvedColor(this) | ^ /tmp/foo.cxx:5:17: note: to match this =E2=80=98{=E2=80=99 5 | struct { resolved( { | ^ /tmp/foo.cxx: In instantiation of =E2=80=98struct ResolvedColorType<*>=E2=80=99: /tmp/foo.cxx:6:16: required from here /tmp/foo.cxx:5:17: note: 6 | resolvedColor(this) /tmp/foo.cxx:5:17: note: | ~~~~~~~~~~~~~^~~~~~ /tmp/foo.cxx:4:44: error: =E2=80=98ResolvedColorType< >::=E2=80=99 has incomplete type 4 | constexpr ResolvedColorType : ColorType {} } | ^ /tmp/foo.cxx:3:49: note: definition of =E2=80=98struct ResolvedColorType<*>=E2=80=99 is not complete until the closing brace 3 | template < typename ColorType > struct ResolvedColorType { | ^~~~~~~~~~~~~~~~~ /tmp/foo.cxx:3:49: internal compiler error: in layout_class_type, at cp/class.cc:6966 0x5643dcc7dd8e layout_class_type(tree_node*, tree_node**) [clone .constprop= .0] =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/clas= s.cc:6966 0x5643de537884 finish_struct_1(tree_node*) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/clas= s.cc:7601 0x5643de854da8 instantiate_class_template(tree_node*) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pt.c= c:12569 0x5643de33ae80 complete_type(tree_node*) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/type= ck.cc:138 0x5643de33ae80 complete_type_or_maybe_complain(tree_node*, tree_node*, int) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/type= ck.cc:151 0x5643de5f3da2 require_complete_type(tree_node*, int) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/type= ck.cc:94 0x5643de5f3da2 build_cxx_call(tree_node*, int, tree_node**, int, tree_node*) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/call= .cc:10941 0x5643de5d8d5c build_over_call =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/call= .cc:10426 0x5643de5c10b2 build_new_function_call(tree_node*, vec**, int) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/call= .cc:5026 0x5643de5bb166 finish_call_expr(tree_node*, vec**, bool, bool, int) =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/sema= ntics.cc:2981 0x5643de4ddb17 cp_parser_postfix_expression =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:8084 0x5643de4d9a39 cp_parser_binary_expression =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:10229 0x5643de4d8cd8 cp_parser_assignment_expression =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:10573 0x5643de4decdd cp_parser_expression =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:10740 0x5643de4decdd cp_parser_expression_statement =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:12939 0x5643de4d5671 cp_parser_statement =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:12719 0x5643de4d2015 cp_parser_statement_seq_opt =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:13188 0x5643de4d2015 cp_parser_compound_statement =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:13042 0x5643de4ce999 cp_parser_function_body =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:25560 0x5643de4ce999 cp_parser_ctor_initializer_opt_and_function_body =20=20=20=20=20=20=20 /usr/src/debug/sys-devel/gcc-14.0.0_pre20231029/gcc-14-20231029/gcc/cp/pars= er.cc:25611 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See for instructions. ```=