https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85481
Bug ID: 85481 Summary: ICE in maybe_explain_implicit_delete Product: gcc Version: 8.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Target Milestone: --- Created attachment 43998 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43998&action=edit Autoreduced testcase cc1plus t.cc } class b { t.cc:2:1: error: expected ‘,’ or ‘...’ before ‘}’ token ) ^ t.cc:2:2: error: expected ‘;’ after class definition ^ t.cc:3:14: error: expected ‘;’ at end of member declaration t.cc:4:2: error: expected ‘;’ after class definition } class B { virtual ~B(; b d ^ ; t.cc:5:2: error: expected ‘;’ after class definition } template class : B { ^ ; t.cc:5:22: error: expected ‘}’ at end of input } template class : B { ^ t.cc:5:18: error: use of deleted function ‘b::~b()’ } template class : B { ^ t.cc:3:7: internal compiler error: in maybe_explain_implicit_delete, at cp/method.c:1873 a c ~b() = default ^ 0x12e6821 maybe_explain_implicit_delete(tree_node*) /home/andreas/build/../gcc/gcc/cp/method.c:1873 0x12888b1 mark_used(tree_node*, int) /home/andreas/build/../gcc/gcc/cp/decl2.c:5255 0x11ad759 build_over_call /home/andreas/build/../gcc/gcc/cp/call.c:7736 0x11b221b build_new_method_call_1 /home/andreas/build/../gcc/gcc/cp/call.c:9378 0x11b221b build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /home/andreas/build/../gcc/gcc/cp/call.c:9453 0x12da887 locate_fn_flags /home/andreas/build/../gcc/gcc/cp/method.c:1024 0x12ddee3 walk_field_subobs /home/andreas/build/../gcc/gcc/cp/method.c:1439 0x12dedab synthesized_method_walk /home/andreas/build/../gcc/gcc/cp/method.c:1741 0x12e38f3 get_defaulted_eh_spec(tree_node*, int) /home/andreas/build/../gcc/gcc/cp/method.c:1775 0x13c5105 maybe_instantiate_noexcept(tree_node*, int) /home/andreas/build/../gcc/gcc/cp/pt.c:23256 0x13d9de5 check_final_overrider /home/andreas/build/../gcc/gcc/cp/search.c:1935 0x13d9de5 look_for_overrides_r /home/andreas/build/../gcc/gcc/cp/search.c:2089 0x13d9de5 look_for_overrides(tree_node*, tree_node*) /home/andreas/build/../gcc/gcc/cp/search.c:2034 0x11d6b8d check_for_override(tree_node*, tree_node*) /home/andreas/build/../gcc/gcc/cp/class.c:2774 0x12e1a13 lazily_declare_fn(special_function_kind, tree_node*) /home/andreas/build/../gcc/gcc/cp/method.c:2404 0x11c9125 dfs_declare_virt_assop_and_dtor /home/andreas/build/../gcc/gcc/cp/class.c:3011 0x13d4d57 dfs_walk_all(tree_node*, tree_node* (*)(tree_node*, void*), tree_node* (*)(tree_node*, void*), void*) /home/andreas/build/../gcc/gcc/cp/search.c:1410 0x13d4ded dfs_walk_all(tree_node*, tree_node* (*)(tree_node*, void*), tree_node* (*)(tree_node*, void*), void*) /home/andreas/build/../gcc/gcc/cp/search.c:1422 0x11ea4c5 declare_virt_assop_and_dtor /home/andreas/build/../gcc/gcc/cp/class.c:3030 0x11ea4c5 add_implicitly_declared_members /home/andreas/build/../gcc/gcc/cp/class.c:3170