diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/init/dtor1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/init/dtor1.C | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/init/dtor1.C b/gcc/testsuite/g++.dg/init/dtor1.C new file mode 100644 index 000000000..624433897 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/dtor1.C @@ -0,0 +1,43 @@ +// { dg-do run } + +extern "C" void abort (); + +int d = 5; + +struct B +{ + int x; + B (int i) : x (i) { } + ~B () { if (d-- != x) abort (); } +}; + +struct C1 : public B { + C1 (int i) : B (i) {} +}; + +struct C2 : public B { + C2 (int i) : B (i) {} +}; + +struct D : public B { + D (int i) : B (i) {} +}; + +struct E : public B { + E (int i) : B (i) {} +}; + +struct A + : public C1, C2, virtual public D, virtual public E +{ + A () : D (0), E (1), C1 (2), C2 (3), x1(4), x2(5) {} + B x1; + B x2; +}; + + +int main () +{ + A a; + return 0; +} |