aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/init/dtor1.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/init/dtor1.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/init/dtor1.C43
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/init/dtor1.C b/gcc-4.9/gcc/testsuite/g++.dg/init/dtor1.C
new file mode 100644
index 000000000..624433897
--- /dev/null
+++ b/gcc-4.9/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;
+}