// { dg-do run } | |
// { dg-options "-w" } | |
extern "C" void abort (); | |
struct B; | |
B* b; | |
struct A { | |
virtual void f () {} | |
}; | |
struct B : virtual public A { | |
B () { | |
b = this; | |
((A*) this)->f (); | |
} | |
virtual void f () { | |
if (this != b) | |
abort (); | |
} | |
}; | |
struct C : public B { | |
}; | |
struct D : public C, public B { | |
virtual void f () {} | |
}; | |
int main () { | |
D d; | |
} | |