From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C66383858CDB; Tue, 28 Feb 2023 17:09:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C66383858CDB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1677604192; bh=9KNGgoQaeUwLY6skSdsvXxhoQwCXWUIiKTpmQy0+6UQ=; h=From:To:Subject:Date:From; b=LgNVWLffqZCCfPv9X/1/IYSBgv7N/ZCjW741D6HVTLHt1WNcZ43FZp4TEgk9ByZKW mFwD9++hARO11jQXj29/NR75hJBmf1MHOY7OXtA1IaDRXXwjzRiM19V7QPAaAJ4lx4 ELbje+hS0pXKlx0neqE+AIJ9PAsVx8B2RoKDcXPw= From: "asolokha at gmx dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/108972] New: ICE: tree check: expected tree that contains 'decl common' structure, have 'error_mark' in compare_lambda_template_head, at cp/lambda.cc:1551 Date: Tue, 28 Feb 2023 17:09:50 +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: 13.0 X-Bugzilla-Keywords: ice-on-invalid-code, lto X-Bugzilla-Severity: normal X-Bugzilla-Who: asolokha at gmx dot com 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 keywords bug_severity priority component assigned_to reporter cc 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=3D108972 Bug ID: 108972 Summary: ICE: tree check: expected tree that contains 'decl common' structure, have 'error_mark' in compare_lambda_template_head, at cp/lambda.cc:1551 Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code, lto Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com CC: marxin at gcc dot gnu.org, unassigned at gcc dot gnu.org Target Milestone: --- +++ This bug was initially created as a clone of Bug #108971 +++ gcc 13.0.1 20230226 snapshot (g:e6d39f68d03c46637ca6e1bede3d28eae6278df3) I= CEs when compiling the following testcase, reduced from gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C, w/ -fbranch-probabilities -f= lto -fno-inline: template concept C1 =3D __is_same_as(T, int); template concept IsNotTiny =3D !__is_same_as(T, char); void foo () { auto g =3D [] requires IsNotTiny(T t) -> T requires IsNotTiny { return t; }; [](auto t) requires true { return t; }(5); [](C1 auto t) { return t; }(5); auto a0 =3D [](IsNotTiny auto a) { return [](auto b){ return b; }; }; auto a1 =3D a0(1); } % g++-13 -fbranch-probabilities -flto -fno-inline -c sanpvd3f.C sanpvd3f.C:2:1: error: 'concept' does not name a type; did you mean 'const'? 2 | concept C1 =3D __is_same_as(T, int); | ^~~~~~~ | const sanpvd3f.C:2:1: note: 'concept' only available with '-std=3Dc++20' or '-fconcepts' sanpvd3f.C:5:1: error: 'concept' does not name a type; did you mean 'const'? 5 | concept IsNotTiny =3D !__is_same_as(T, char); | ^~~~~~~ | const sanpvd3f.C:5:1: note: 'concept' only available with '-std=3Dc++20' or '-fconcepts' sanpvd3f.C: In function 'void foo()': sanpvd3f.C:10:15: error: 'C1' has not been declared 10 | auto g =3D [] requires IsNotTiny(T t) -> T | ^~ sanpvd3f.C:10:21: error: 'requires' only available with '-std=3Dc++20' or '-fconcepts' 10 | auto g =3D [] requires IsNotTiny(T t) -> T | ^~~~~~~~ sanpvd3f.C:10:30: error: 'IsNotTiny' was not declared in this scope 10 | auto g =3D [] requires IsNotTiny(T t) -> T | ^~~~~~~~~ sanpvd3f.C:10:40: error: 'T' was not declared in this scope 10 | auto g =3D [] requires IsNotTiny(T t) -> T | ^ sanpvd3f.C:10:43: error: 'T' was not declared in this scope 10 | auto g =3D [] requires IsNotTiny(T t) -> T | ^ sanpvd3f.C:10:44: error: expected ')' before 't' 10 | auto g =3D [] requires IsNotTiny(T t) -> T | ~ ^~ | ) sanpvd3f.C: In lambda function: sanpvd3f.C:11:50: error: expected '{' before ';' token 11 | requires IsNotTiny { return t; }; | ^ sanpvd3f.C: In function 'void foo()': sanpvd3f.C:13:14: error: 'requires' only available with '-std=3Dc++20' or '-fconcepts' 13 | [](auto t) requires true { return t; }(5); | ^~~~~~~~ sanpvd3f.C:13:23: internal compiler error: tree check: expected tree that contains 'decl common' structure, have 'error_mark' in compare_lambda_template_head, at cp/lambda.cc:1551 13 | [](auto t) requires true { return t; }(5); | ^~~~ 0x896ef7 tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tr= ee.cc:9083 0x70171c contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/tr= ee.h:3644 0x70171c compare_lambda_template_head =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /lambda.cc:1551 0xa6a86c compare_lambda_sig =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /lambda.cc:1598 0xa6a86c record_lambda_scope_sig_discriminator(tree_node*, tree_node*) =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /lambda.cc:1656 0xb234b8 cp_parser_lambda_declarator_opt =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:11774 0xb05f86 cp_parser_lambda_expression =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:11142 0xb06d63 cp_parser_primary_expression =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:5826 0xb095e6 cp_parser_postfix_expression =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:7777 0xaf1454 cp_parser_binary_expression =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:10147 0xaf2332 cp_parser_assignment_expression =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:10490 0xaf4784 cp_parser_expression =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:10660 0xaf88b7 cp_parser_expression_statement =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:12804 0xb041db cp_parser_statement =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:12584 0xb0530d cp_parser_statement_seq_opt =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:12955 0xb053d7 cp_parser_compound_statement =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:12907 0xb28b54 cp_parser_function_body =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:25323 0xb28b54 cp_parser_ctor_initializer_opt_and_function_body =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:25374 0xb2ac00 cp_parser_function_definition_after_declarator =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:31995 0xb2c152 cp_parser_function_definition_from_specifiers_and_declarator =20=20=20=20=20=20=20 /var/tmp/portage/sys-devel/gcc-13.0.1_p20230226/work/gcc-13-20230226/gcc/cp= /parser.cc:31912=