// { dg-do run  }
// Copyright (C) 1999 Free Software Foundation

// by Alexandre Oliva <oliva@lsd.ic.unicamp.br>

// Test whether dtors of vbases are called on throw within new[].
// Variant of delete2.C.

extern "C" void abort();
extern "C" void exit(int);

struct Foo {
  static bool first;

  Foo() {
    if (first)
      first = false;
    else
      throw first;
  }

  ~Foo() {
    exit(0);
  }
};

bool Foo::first = true;

struct Bar : virtual Foo {
};

int main() {
  try {
    delete [] new Bar[2];
  } catch (...) {
  }
  abort();
}
