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

            Bug ID: 84536
           Summary: [7/8 Regression] ICE with non-type template parameter
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: error-recovery, 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 triggers an ICE since GCC 7.1.0:

====================================================
template<int... N> auto foo(N...) -> void {}

void bar()
{
  foo<>();
}
====================================================

bug.cc:1:34: error: expected ';' before '->' token
 template<int... N> auto foo(N...) -> void {}
                                  ^~~
                                  ;
bug.cc: In instantiation of 'auto foo<>':
bug.cc:5:3:   required from here
bug.cc:1:25: internal compiler error: in cp_finish_decl, at cp/decl.c:6812
 template<int... N> auto foo(N...) -> void {}
                         ^~~
0x600957 cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        ../../gcc/gcc/cp/decl.c:6812
0x965bf9 instantiate_decl(tree_node*, bool, bool)
        ../../gcc/gcc/cp/pt.c:23367
0x8aefcb maybe_instantiate_decl
        ../../gcc/gcc/cp/decl2.c:5186
0x8b0dd8 mark_used(tree_node*, int)
        ../../gcc/gcc/cp/decl2.c:5281
0x9ace9b finish_id_expression(tree_node*, tree_node*, tree_node*, cp_id_kind*,
bool, bool, bool*, bool, bool, bool, bool, char const**, unsigned int)
        ../../gcc/gcc/cp/semantics.c:3681
0x91e2dc cp_parser_primary_expression
        ../../gcc/gcc/cp/parser.c:5607
0x9306fc cp_parser_postfix_expression
        ../../gcc/gcc/cp/parser.c:7026
0x9312d0 cp_parser_unary_expression
        ../../gcc/gcc/cp/parser.c:8318
0x91165f cp_parser_cast_expression
        ../../gcc/gcc/cp/parser.c:9086
0x911e6a cp_parser_binary_expression
        ../../gcc/gcc/cp/parser.c:9187
0x9136a4 cp_parser_assignment_expression
        ../../gcc/gcc/cp/parser.c:9482
0x913db8 cp_parser_expression
        ../../gcc/gcc/cp/parser.c:9651
0x915a78 cp_parser_expression_statement
        ../../gcc/gcc/cp/parser.c:11118
0x91bded cp_parser_statement
        ../../gcc/gcc/cp/parser.c:10922
0x91d300 cp_parser_statement_seq_opt
        ../../gcc/gcc/cp/parser.c:11261
0x91d3d7 cp_parser_compound_statement
        ../../gcc/gcc/cp/parser.c:11215
0x933b50 cp_parser_function_body
        ../../gcc/gcc/cp/parser.c:21756
0x933b50 cp_parser_ctor_initializer_opt_and_function_body
        ../../gcc/gcc/cp/parser.c:21793
0x934400 cp_parser_function_definition_after_declarator
        ../../gcc/gcc/cp/parser.c:26694
0x935134 cp_parser_function_definition_from_specifiers_and_declarator
        ../../gcc/gcc/cp/parser.c:26610
Please submit a full bug report, [etc.]

Reply via email to