diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/vbase1.C')
-rwxr-xr-x | gcc/testsuite/g++.old-deja/g++.pt/vbase1.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/vbase1.C b/gcc/testsuite/g++.old-deja/g++.pt/vbase1.C new file mode 100755 index 0000000..58d26fc --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/vbase1.C @@ -0,0 +1,31 @@ +// Check that template classes handle inherited virtual bases +// properly, initializing them before direct non-virtual bases. + +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; +} |