Home | History | Annotate | Download | only in jni
      1 // { dg-do run  }
      2 // Copyright (C) 1999 Free Software Foundation
      3 
      4 // by Alexandre Oliva <oliva (at) lsd.ic.unicamp.br>
      5 
      6 // Test whether dtors of vbases are called on throw within new[].
      7 // Variant of delete2.C.
      8 
      9 extern "C" void abort();
     10 extern "C" void exit(int);
     11 
     12 struct Foo {
     13   static bool first;
     14 
     15   Foo() {
     16     if (first)
     17       first = false;
     18     else
     19       throw first;
     20   }
     21 
     22   ~Foo() {
     23     exit(0);
     24   }
     25 };
     26 
     27 bool Foo::first = true;
     28 
     29 struct Bar : virtual Foo {
     30 };
     31 
     32 int main() {
     33   try {
     34     delete [] new Bar[2];
     35   } catch (...) {
     36   }
     37   abort();
     38 }
     39