// { dg-do compile } /* { dg-require-profiling "-fprofile-generate" } */ // { dg-options "-fprofile-generate" } // GCC used to ICE with some EH edge missing. inline void* operator new(__SIZE_TYPE__, void* p) throw() { return p; } inline void operator delete (void*, void*) throw() { } template void foo(void* p, T t) { new(p) T(t); } void bar(); template struct A { T* p; A() { try { foo(p, T()); } catch(...) {} } A(const A&) { try { bar(); } catch(...) { throw; } } }; A > a;