• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // { dg-do run  }
2 // Copyright (C) 1999 Free Software Foundation
3 
4 // by Alexandre Oliva <oliva@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 
FooFoo15   Foo() {
16     if (first)
17       first = false;
18     else
19       throw first;
20   }
21 
~FooFoo22   ~Foo() {
23     exit(0);
24   }
25 };
26 
27 bool Foo::first = true;
28 
29 struct Bar : virtual Foo {
30 };
31 
main()32 int main() {
33   try {
34     delete [] new Bar[2];
35   } catch (...) {
36   }
37   abort();
38 }
39