1 // { dg-do run }
2 // { dg-options "-w" }
3 
4 extern "C" void abort ();
5 
6 struct B;
7 
8 B* b;
9 
10 struct A {
fA11   virtual void f () {}
12 };
13 
14 struct B : virtual public A {
BB15   B () {
16     b = this;
17     ((A*) this)->f ();
18   }
19 
fB20   virtual void f () {
21     if (this != b)
22       abort ();
23   }
24 };
25 
26 struct C : public B {
27 };
28 
29 struct D : public C, public B {
fD30   virtual void f () {}
31 };
32 
main()33 int main () {
34   D d;
35 }
36 
37