https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94484
Bug ID: 94484 Summary: [10 Regression] ICE in cp_finish_decl, at cp/decl.c:7447 Product: gcc Version: unknown Status: UNCONFIRMED Keywords: error-recovery, ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-10.0.1-alpha20200329 snapshot (g:60c254b279e8e8443b8ad26cc46b9e4084cff66c) ICEs when compiling the following testcase, extracted from test/SemaTemplate/dependent-expr.cpp from the clang 10.0.0 test suite, w/ -fconcepts or -fconcepts-ts: void i(auto a) { [](auto a, int = ({decltype(a) i; i * 2;})){}(a); } % g++-10.0.1 -fconcepts-ts -c bdtktvea.cpp bdtktvea.cpp: In function 'void i(auto:1)': bdtktvea.cpp:2:34: error: non-function 'i' declared as implicit template 2 | [](auto a, int = ({decltype(a) i; i * 2;})){}(a); | ^ bdtktvea.cpp:2:34: internal compiler error: in cp_finish_decl, at cp/decl.c:7447 0x614650 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/decl.c:7447 0x9b878b cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:20909 0x998b56 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13731 0x99a8fa cp_parser_declaration_statement /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13163 0x99b56f cp_parser_statement /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11469 0x99c4d8 cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11835 0x99c5b8 cp_parser_compound_statement /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11785 0x99eed8 cp_parser_statement_expr /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:4931 0x99eed8 cp_parser_primary_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:5336 0x9a8487 cp_parser_postfix_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:7257 0x98a669 cp_parser_binary_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:9554 0x98c31e cp_parser_assignment_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:9859 0x98b005 cp_parser_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:10153 0x98b7a1 cp_parser_initializer_clause /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:23218 0x98fe5f cp_parser_initializer /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:23156 0x9b58d9 cp_parser_default_argument /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:23037 0x9b58d9 cp_parser_parameter_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:22930 0x9b600a cp_parser_parameter_declaration_list /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:22587 0x9b641c cp_parser_parameter_declaration_clause /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:22514 0x9b6e5c cp_parser_lambda_declarator_opt /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:11047