aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.eh/new1.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.eh/new1.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.eh/new1.C44
1 files changed, 0 insertions, 44 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/new1.C b/gcc/testsuite/g++.old-deja/g++.eh/new1.C
deleted file mode 100644
index 1671dbbe7de..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.eh/new1.C
+++ /dev/null
@@ -1,44 +0,0 @@
-// Test that a throw in foo destroys the A, but does not free the memory.
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <new.h>
-
-struct A {
- A();
- ~A();
-};
-
-struct B {
- B (A);
-};
-
-void foo (B*);
-
-int newed, created;
-
-int main ()
-{
- try {
- foo (new B (A ()));
- } catch (...) { }
-
- return !(newed && !created);
-}
-
-A::A() { created = 1; }
-A::~A() { created = 0; }
-B::B(A) { }
-void foo (B*) { throw 1; }
-
-void* operator new (size_t size) throw (std::bad_alloc)
-{
- ++newed;
- return (void *) malloc (size);
-}
-
-void operator delete (void *p) throw ()
-{
- --newed;
- free (p);
-}