1 // { dg-do run } 2 3 extern "C" void abort (); 4 5 int d = 5; 6 7 struct B 8 { 9 int x; BB10 B (int i) : x (i) { } ~BB11 ~B () { if (d-- != x) abort (); } 12 }; 13 14 struct C1 : public B { C1C115 C1 (int i) : B (i) {} 16 }; 17 18 struct C2 : public B { C2C219 C2 (int i) : B (i) {} 20 }; 21 22 struct D : public B { DD23 D (int i) : B (i) {} 24 }; 25 26 struct E : public B { EE27 E (int i) : B (i) {} 28 }; 29 30 struct A 31 : public C1, C2, virtual public D, virtual public E 32 { AA33 A () : D (0), E (1), C1 (2), C2 (3), x1(4), x2(5) {} 34 B x1; 35 B x2; 36 }; 37 38 main()39int main () 40 { 41 A a; 42 return 0; 43 } 44