X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.eh%2Fnew2.C;fp=gcc%2Ftestsuite%2Fg%2B%2B.old-deja%2Fg%2B%2B.eh%2Fnew2.C;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=316afffbfc68543081b46fd6e2bd1db86143b710;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/gcc/testsuite/g++.old-deja/g++.eh/new2.C b/gcc/testsuite/g++.old-deja/g++.eh/new2.C deleted file mode 100644 index 316afffb..00000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/new2.C +++ /dev/null @@ -1,46 +0,0 @@ -// Test that a throw in B's constructor destroys the A and frees the memory. - -#include -#include -#include - -struct A { - A(); - ~A(); -}; - -struct B { - B (A); -}; - -void foo (B*); - -int newed, created; - -int main () -{ - newed = 0; // The libraries might call new before main starts. - try { - foo (new B (A ())); - } catch (...) { } - - return !(!newed && !created); -} - -A::A() { created = 1; } -A::~A() { created = 0; } -B::B(A) { throw 1; } -void foo (B*) { } - -void* operator new (size_t size) throw (std::bad_alloc) -{ - ++newed; - return (void *) std::malloc (size); -} - -void operator delete (void *p) throw () -{ - --newed; - free (p); -} -