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

            Bug ID: 84376
           Summary: [7/8 Regression] ICE with missing template parameter
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org
  Target Milestone: ---

The following invalid code snippet (compiled with "-std=c++1z")
triggers an ICE since GCC 7.1.0:

=================================================
template<int> struct A {};

template<typename T> T foo() { return T(); }

template<> A foo<A>();
=================================================

bug.cc:5:21: internal compiler error: tree check: expected identifier_node,
have template_id_expr in dguide_name_p, at cp/pt.c:25461
 template<> A foo<A>();
                     ^
0x78a296 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/gcc/tree.c:9335
0x63283b tree_check(tree_node*, char const*, int, char const*, tree_code)
        ../../gcc/gcc/tree.h:3132
0x63283b dguide_name_p(tree_node*)
        ../../gcc/gcc/cp/pt.c:25461
0x8a1be9 grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
        ../../gcc/gcc/cp/decl.c:11020
0x8a49e6 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
        ../../gcc/gcc/cp/decl.c:4950
0x934399 cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:19569
0x93abea cp_parser_single_declaration
        ../../gcc/gcc/cp/parser.c:27141
0x93b7f7 cp_parser_explicit_specialization
        ../../gcc/gcc/cp/parser.c:16637
0x9409b6 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:12707
0x940c41 cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:12637
0x940f34 cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:4559
0x940f34 c_parse_file()
        ../../gcc/gcc/cp/parser.c:38857
0xa3f566 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.c:1132
Please submit a full bug report, [etc.]

Reply via email to