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