int dtor_ctr = 0;

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

struct B : A
{
  A a;

  ~B()
  {
    throw 0;
  }
};


int main()
{
  try
  {
    B b;
  }
  catch (const int &)
  {
  }

  return !(dtor_ctr == 2);
}
