https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94583
Bug ID: 94583 Summary: [10 Regression] ICE in get_defaulted_eh_spec, at cp/method.c:2421 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-alpha20200412 snapshot (g:87be4cecfc6e42390303be1ca92bc8bc587b0bd6) ICEs when compiling the attached testcase, reduced from test/CXX/class/class.compare/class.compare.default/p4.cpp from the clang 10.0.0 test suite, w/ -std=c++2a: namespace std { struct strong_ordering { }; } namespace DeleteAfterFirstDecl { bool operator==(const struct Q&, const struct Q&); struct Q { friend std::strong_ordering operator<=>(const Q&, const Q&) = default; }; } % g++-10.0.1 -std=c++2a -c r8gjjctb.cpp r8gjjctb.cpp:8:10: internal compiler error: in get_defaulted_eh_spec, at cp/method.c:2421 8 | struct Q { | ^ 0x633fac get_defaulted_eh_spec(tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/method.c:2421 0x9fe7e6 maybe_instantiate_noexcept(tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/pt.c:25157 0x8e52bc check_redeclaration_exception_specification /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/decl.c:1183 0x8f68ef duplicate_decls(tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/decl.c:2202 0x974fb0 do_pushdecl /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/name-lookup.c:3045 0x976ef3 pushdecl(tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/name-lookup.c:3174 0x976ef3 do_pushdecl_with_scope /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/name-lookup.c:3856 0x9770d1 pushdecl_namespace_level(tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/name-lookup.c:5080 0x937633 do_friend(tree_node*, tree_node*, tree_node*, tree_node*, overload_flags, bool) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/friend.c:627 0x889e59 add_implicitly_declared_members /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/class.c:3245 0x8910bb check_bases_and_members /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/class.c:5976 0x89569b finish_struct_1(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/class.c:7212 0x8970e4 finish_struct(tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/class.c:7516 0x996533 cp_parser_class_specifier_1 /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:23878 0x99862b cp_parser_class_specifier /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:24177 0x99862b cp_parser_type_specifier /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:17708 0x999735 cp_parser_decl_specifier_seq /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:14356 0x99a1d4 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:13610 0x9c4b32 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:13430 0x9c4872 cp_parser_toplevel_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200412/work/gcc-10-20200412/gcc/cp/parser.c:13458