| // { dg-do run } | |
| // { dg-options "-w" } | |
| // Origin: Mark Mitchell <mark@codesourcery.com> | |
| int result; | |
| struct A { | |
| A (); | |
| int i; | |
| }; | |
| A* ap; | |
| A::A () | |
| { | |
| ap = this; | |
| } | |
| struct B : virtual public A | |
| { | |
| B (); | |
| ~B (); | |
| int j; | |
| }; | |
| B::B () { | |
| if ((A*) this != ap) | |
| result = 1; | |
| } | |
| B::~B () { | |
| if ((A*) this != ap) | |
| result = 1; | |
| } | |
| struct C : public B { | |
| }; | |
| struct D : public C, public B | |
| { | |
| }; | |
| int main () | |
| { | |
| { | |
| D d; | |
| } | |
| return result; | |
| } |