| // { dg-do run } | |
| // Check that template classes handle inherited virtual bases | |
| // properly, initializing them before direct non-virtual bases. | |
| extern "C" void exit (int); | |
| int aflag; | |
| struct A | |
| { | |
| A() { aflag = 1; } | |
| }; | |
| struct B : virtual public A | |
| { | |
| B() { } | |
| }; | |
| struct C | |
| { | |
| C() { if (!aflag) exit (1); } | |
| }; | |
| template<class Parent> | |
| struct D : public C, public Parent | |
| { | |
| D() { } | |
| }; | |
| int | |
| main () | |
| { | |
| D<B> c; | |
| } |