1// { dg-do run { xfail sparc64-*-elf arm-*-pe } } 2// { dg-options "-fexceptions" } 3 4int fail = 0; 5 6struct A { 7 int ok; 8 A() { 9 ok = 1; 10 } 11 ~A() { 12 if (! ok) 13 fail = 1; 14 ok = 0; 15 } 16}; 17 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