[Bug c++/94462] New: ICE in duplicate_decls, at cp/decl.c:1456

asolokha at gmx dot com gcc-bugzilla@gcc.gnu.org
Thu Apr 2 19:43:02 GMT 2020


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

            Bug ID: 94462
           Summary: ICE in duplicate_decls, at cp/decl.c:1456
           Product: gcc
           Version: 10.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++-10.0.1-alpha20200329 snapshot (g:60c254b279e8e8443b8ad26cc46b9e4084cff66c)
ICEs when compiling the following testcase, extracted from
test/CXX/except/except.spec/p11-2a.cpp from the clang 10.0.0 test suite, w/
-std=c++2a:

namespace std {
  struct strong_ordering {
  };
}

namespace Synth {
  struct B {
    friend std::strong_ordering operator<=>(B, B) = default;
  };

  struct C {
    friend bool operator==(C, C);
  };
}

% g++-10.0.1 -std=c++2a -c nfj6urxw.cpp
nfj6urxw.cpp:12:32: internal compiler error: in duplicate_decls, at
cp/decl.c:1456
   12 |     friend bool operator==(C, C);
      |                                ^
0x60bd06 duplicate_decls(tree_node*, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/decl.c:1456
0x973a60 do_pushdecl
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/name-lookup.c:3045
0x9759a3 pushdecl(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/name-lookup.c:3174
0x9759a3 do_pushdecl_with_scope
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/name-lookup.c:3856
0x975b81 pushdecl_namespace_level(tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/name-lookup.c:5080
0x936333 do_friend(tree_node*, tree_node*, tree_node*, tree_node*,
overload_flags, bool)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/friend.c:627
0x90082c grokdeclarator(cp_declarator const*, cp_decl_specifier_seq*,
decl_context, int, tree_node**)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/decl.c:13363
0x91d4cf grokfield(cp_declarator const*, cp_decl_specifier_seq*, tree_node*,
bool, tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/decl2.c:841
0x9c1f06 cp_parser_member_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:25331
0x994d61 cp_parser_member_specification_opt
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:24775
0x994d61 cp_parser_class_specifier_1
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:23872
0x996eab cp_parser_class_specifier
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:24179
0x996eab cp_parser_type_specifier
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:17708
0x997fb5 cp_parser_decl_specifier_seq
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:14356
0x998a54 cp_parser_simple_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13610
0x9c3302 cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13430
0x9c3042 cp_parser_toplevel_declaration
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13458
0x9c3042 cp_parser_declaration_seq_opt
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:13306
0x9c3042 cp_parser_namespace_body
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:19716
0x9c3042 cp_parser_namespace_definition
       
/var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200329/work/gcc-10-20200329/gcc/cp/parser.c:19694


More information about the Gcc-bugs mailing list