// { dg-do run } // Origin: Mark Mitchell <mark@codesourcery.com> int i; struct A { ~A (); }; A::~A () { i = 1; } struct B : virtual public A { }; struct C { C (); B b; }; C::C () { throw 3; } int main () { try { C c; } catch (...) { } if (i != 1) return 1; }