1// { dg-do run  }
2// Origin: Mark Mitchell <mark@codesourcery.com>
3
4int i;
5
6struct A
7{
8  A () { i++; }
9  ~A () { i--; }
10};
11
12struct B : public virtual A
13{
14  B () { throw 1; }
15};
16
17struct D: public B, virtual public A
18{
19};
20
21void f()
22{
23  D d;
24}
25
26int main ()
27{
28  try {
29    f();
30  } catch (int) {
31  }
32
33  return i;
34}
35
36