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

            Bug ID: 79519
           Summary: [5/6/7 Regression] ICE deleting template friend
                    function
           Product: gcc
           Version: 7.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 triggers since GCC 5.1.0:

======================================================
struct A
{
  template<typename> void foo();
};

struct B
{
  template<typename> friend void A::foo() = delete;
};
======================================================

bug.cc:8:45: internal compiler error: in grokfield, at cp/decl2.c:930
   template<typename> friend void A::foo() = delete;
                                             ^~~~~~
0x6ec8b1 grokfield(cp_declarator const*, cp_decl_specifier_seq*, tree_node*,
bool, tree_node*, tree_node*)
        ../../gcc/gcc/cp/decl2.c:930
0x7390a3 cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:19375
0x71321a cp_parser_single_declaration
        ../../gcc/gcc/cp/parser.c:26728
0x73361c cp_parser_template_declaration_after_parameters
        ../../gcc/gcc/cp/parser.c:26332
0x7332ac cp_parser_explicit_template_declaration
        ../../gcc/gcc/cp/parser.c:26567
0x7332ac cp_parser_template_declaration_after_export
        ../../gcc/gcc/cp/parser.c:26586
0x70e571 cp_parser_member_declaration
        ../../gcc/gcc/cp/parser.c:23024
0x70f3fa cp_parser_member_specification_opt
        ../../gcc/gcc/cp/parser.c:22951
0x70f3fa cp_parser_class_specifier_1
        ../../gcc/gcc/cp/parser.c:22107
0x711a29 cp_parser_class_specifier
        ../../gcc/gcc/cp/parser.c:22359
0x711a29 cp_parser_type_specifier
        ../../gcc/gcc/cp/parser.c:16432
0x71291a cp_parser_decl_specifier_seq
        ../../gcc/gcc/cp/parser.c:13345
0x739b01 cp_parser_simple_declaration
        ../../gcc/gcc/cp/parser.c:12670
0x73aa25 cp_parser_block_declaration
        ../../gcc/gcc/cp/parser.c:12617
0x7135d4 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:12515
0x74406b cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:12391
0x74434a cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:4366
0x74434a c_parse_file()
        ../../gcc/gcc/cp/parser.c:38425
0x8a2f73 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.c:1107
Please submit a full bug report, [etc.]

Reply via email to