1 // PR c++/5636 2 // Bug: the named return value optimization interfered with EH cleanups. 3 4 int c, d; 5 6 struct A 7 { AA8 A() { ++c; } ~AA9 ~A() { ++d; } 10 }; 11 f()12A f() 13 { 14 A nrv; 15 throw 42; 16 return nrv; 17 } 18 main()19int main() 20 { 21 try 22 { A a = f(); } 23 catch (...) { } 24 return (d < c); 25 } 26