1 // { dg-do run } 2 3 extern "C" void abort (); 4 5 struct A 6 { 7 inline ~A (); fooA8 virtual void foo () {} 9 }; 10 11 struct B : A 12 { fooB13 virtual void foo () { abort(); } 14 }; 15 middleman(A * a)16static inline void middleman (A *a) 17 { 18 a->foo (); 19 } 20 ~A()21inline A::~A () 22 { 23 middleman (this); 24 } 25 main()26int main () 27 { 28 B b; 29 return 0; 30 } 31