/* { dg-do run } */ | |
/* { dg-options "-O2 -fno-early-inlining" } */ | |
struct A {}; | |
struct B : virtual A { | |
unsigned m_i; | |
B() : m_i () {} | |
virtual A *m_virt () | |
{ | |
return 0; | |
} | |
~B () | |
{ | |
m_foo (); | |
while (m_i) | |
; | |
} | |
void m_foo () | |
{ | |
m_virt (); | |
} | |
}; | |
class C : B { | |
A *m_virt () { | |
__builtin_abort (); | |
} | |
}; | |
int main () | |
{ | |
C c; | |
} |