1 // { dg-do run { xfail sparc64-*-elf arm-*-pe } }
2 // { dg-options "-fexceptions" }
3 
4 int fail = 0;
5 
6 struct A {
7   int ok;
AA8   A() {
9     ok = 1;
10   }
~AA11   ~A() {
12     if (! ok)
13       fail = 1;
14     ok = 0;
15   }
16 };
17 
main()18 int main() {
19   try {
20     try {
21       A  a;
22       throw 1.0;
23     } catch (double i) {
24       A a1;
25       throw 1;    // make sure both a1 and a2 are not destroyed when we throw!
26     } catch (int i) {
27       A a2;
28       throw 1.0;
29     }
30   } catch (int i) {
31   }
32   return fail;
33 }
34