https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97671

            Bug ID: 97671
           Summary: ICE: tree check: expected var_decl or function_decl or
                    field_decl or type_decl or concept_decl or
                    template_decl, have parm_decl in push_template_decl,
                    at cp/pt.c:6102
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: 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++-11.0.0-alpha20201101 snapshot (g:590febb5f6624f78b36402a7c9a9c318978f1efa)
ICEs when compiling the following testcase, reduced from
test/SemaTemplate/dependent-expr.cpp from the clang 10.0.1 test suite:

void
k7 (auto fe)
{
  [] (auto fe, int = ({decltype (fe) k7; k7 * 2;})) {} (fe);
}

% g++-11.0.0 -fconcepts-ts -c gtrqdjtk.cpp
gtrqdjtk.cpp: In function 'void k7(auto:1)':
gtrqdjtk.cpp:4:38: internal compiler error: tree check: expected var_decl or
function_decl or field_decl or type_decl or concept_decl or template_decl, have
parm_decl in push_template_decl, at cp/pt.c:6102
    4 |   [] (auto fe, int = ({decltype (fe) k7; k7 * 2;})) {} (fe);
      |                                      ^~
0x7dedcc tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/tree.c:9731
0x66c54c template_info_decl_check(tree_node const*, char const*, int, char
const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/cp-tree.h:633
0x691e00 template_info_decl_check(tree_node const*, char const*, int, char
const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/tree.h:3427
0x691e00 push_template_decl(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/pt.c:6102
0x940831 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/decl.c:5403
0x9f36d1 cp_parser_init_declarator
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:20944
0x9d2b2e cp_parser_simple_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:13888
0x9d4adc cp_parser_declaration_statement
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:13328
0x9d57af cp_parser_statement
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:11574
0x9d688d cp_parser_statement_seq_opt
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:11940
0x9d6968 cp_parser_compound_statement
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:11890
0x9d9593 cp_parser_statement_expr
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:4993
0x9d9593 cp_parser_primary_expression
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:5400
0x9e2f52 cp_parser_postfix_expression
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:7332
0x9c4292 cp_parser_binary_expression
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:9652
0x9c60bc cp_parser_assignment_expression
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:9957
0x9c4bcd cp_parser_constant_expression
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:10251
0x9c5411 cp_parser_initializer_clause
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:23418
0x9ca07c cp_parser_initializer
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:23356
0x9f0b11 cp_parser_default_argument
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201101/work/gcc-11-20201101/gcc/cp/parser.c:23237

Reply via email to