// { dg-do run }
// Origin: Mark Mitchell <mark@codesourcery.com>
int i;
struct A
{
A () { i++; }
~A () { i--; }
};
struct B : public virtual A
{
B () { throw 1; }
};
struct D: public B, virtual public A
{
};
void f()
{
D d;
}
int main ()
{
try {
f();
} catch (int) {
}
return i;
}