// PR c++/411

// Test that a fully-constructed base is destroyed before transferring
// control to the handler of a function-try-block.

// { dg-do run }

int ad;
int r;

struct A {
  ~A() { ++ad; }
};

struct B: public A {
  ~B();
};

B::~B ()
try
  {
    throw 1;
  }
catch (...)
  {
    if (!ad)
      r = 1;
    return;
  }

int main ()
{
  { B b; }
  return r;
}
