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

Reply via email to