1// { dg-do run } 2// Bug: g++ fails to treat function-try-blocks in ctors specially. 3// Submitted by Jason Merrill <jason@cygnus.com> 4 5int c; 6int r; 7 8struct A { 9 int i; 10 A(int j) { i = j; } 11 ~A() { c += i; } 12}; 13 14struct B: public A { 15 A a; 16 B() try : A(1), a(2) 17 { throw 1; } 18 catch (...) 19 { if (c != 3) r |= 1; } 20}; 21 22int main () 23{ 24 try 25 { B b; } 26 catch (...) 27 { c = 0; } 28 29 if (c != 0) r |= 2; 30 31 return r; 32} 33