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()18int 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