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

Reply via email to