aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C66
1 files changed, 0 insertions, 66 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C b/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C
deleted file mode 100644
index a1ca853cf91..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C
+++ /dev/null
@@ -1,66 +0,0 @@
-// GROUPS passed destructors
-// Check that member and base classes get properly destructed
-// when an object of a derived class is destructed via a pointer
-// to it which only has a "compile-time" type of "pointer-to-base".
-//
-// Note that in order for this test to work properly, the destructor
-// for the base class should be explicitly declared to be virtual.
-
-extern "C" void printf (char *, ...);
-
-int member_destructor_calls = 0;
-int middle_destructor_calls = 0;
-
-struct member_type {
- int data_member;
- member_type () {}
- ~member_type ();
-};
-
-struct base {
- int data_member;
- base () {}
- virtual ~base ();
-};
-
-struct middle : public base {
- member_type member1;
- member_type member2;
- middle () {}
- ~middle (); // should be implicitly virtual
-};
-
-struct derived : public middle {
- member_type member1;
- member_type member2;
- //~derived () {}
-};
-
-int main ()
-{
- base* bp = new derived;
- delete bp;
- derived *dp = new derived;
- delete dp;
-
- if ((member_destructor_calls != 8) || (middle_destructor_calls != 2))
- printf ("FAIL\n");
- else
- printf ("PASS\n");
-
- return 0;
-}
-
-member_type::~member_type ()
-{
- member_destructor_calls++;
-}
-
-base::~base ()
-{
-}
-
-middle::~middle ()
-{
- middle_destructor_calls++;
-}