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

            Bug ID: 99116
           Summary: [11 Regression] ICE in
                    set_identifier_type_value_with_scope, at
                    cp/name-lookup.c:4764
           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-alpha20210214 snapshot (g:9966699d7a9d8e35c0c4cf9a945bcf90ef874f2d)
ICEs when compiling the following testcase, reduced from
test/CXX/temp/temp.res/temp.local/p6.cpp from the clang 11.0.1 test suite:

template<int T> struct Z {
  template<typename T> struct A {};

  friend struct T;
};

% g++-11.0.0 -c rzrmc2qs.c
rzrmc2qs.c:2:12: error: declaration of template parameter 'T' shadows template
parameter
    2 |   template<typename T> struct A {};
      |            ^~~~~~~~
rzrmc2qs.c:1:10: note: template parameter 'T' declared here
    1 | template<int T> struct Z {
      |          ^~~
rzrmc2qs.c:4:17: error: declaration of 'struct T' shadows template parameter
    4 |   friend struct T;
      |                 ^
rzrmc2qs.c:1:10: note: template parameter 'T' declared here
    1 | template<int T> struct Z {
      |          ^~~
rzrmc2qs.c:4:17: internal compiler error: in
set_identifier_type_value_with_scope, at cp/name-lookup.c:4764
    4 |   friend struct T;
      |                 ^
0x67ea81 set_identifier_type_value_with_scope
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/name-lookup.c:4764
0xa23af9 do_pushdecl
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/name-lookup.c:3817
0xa24561 do_pushdecl
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/name-lookup.c:4850
0xa24561 do_pushdecl_with_scope
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/name-lookup.c:4850
0xa24b15 do_pushtag
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/name-lookup.c:8282
0xa24b15 pushtag(tree_node*, tree_node*, TAG_how)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/name-lookup.c:8342
0x9614d0 xref_tag(tag_types, tree_node*, TAG_how, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/decl.c:15323
0xa60c10 cp_parser_elaborated_type_specifier
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:19644
0xa455b5 cp_parser_type_specifier
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:18398
0xa46644 cp_parser_decl_specifier_seq
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:14994
0xa7304e cp_parser_member_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:25874
0xa43120 cp_parser_member_specification_opt
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:25731
0xa43120 cp_parser_class_specifier_1
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:24809
0xa4568b cp_parser_class_specifier
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:25125
0xa4568b cp_parser_type_specifier
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:18372
0xa46644 cp_parser_decl_specifier_seq
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:14994
0xa71a79 cp_parser_single_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:30343
0xa71e25 cp_parser_template_declaration_after_parameters
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:30006
0xa725f0 cp_parser_explicit_template_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:30272
0xa74e81 cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20210214/work/gcc-11-20210214/gcc/cp/parser.c:14000

Reply via email to