1// { dg-do run } 2// Check that template classes handle inherited virtual bases 3// properly, initializing them before direct non-virtual bases. 4 5extern "C" void exit (int); 6 7int aflag; 8 9struct A 10{ 11 A() { aflag = 1; } 12}; 13 14struct B : virtual public A 15{ 16 B() { } 17}; 18 19struct C 20{ 21 C() { if (!aflag) exit (1); } 22}; 23 24template<class Parent> 25struct D : public C, public Parent 26{ 27 D() { } 28}; 29 30int 31main () 32{ 33 D<B> c; 34} 35