1 // { dg-do compile } 2 /* { dg-require-profiling "-fprofile-generate" } */ 3 // { dg-options "-fprofile-generate" } 4 5 // GCC used to ICE with some EH edge missing. 6 new(__SIZE_TYPE__,void * p)7inline void* operator new(__SIZE_TYPE__, void* p) throw() { return p; } delete(void *,void *)8inline void operator delete (void*, void*) throw() { } 9 foo(void * p,T t)10template<typename T> void foo(void* p, T t) 11 { 12 new(p) T(t); 13 } 14 15 void bar(); 16 17 template<typename T> struct A 18 { 19 T* p; 20 AA21 A() { try { foo(p, T()); } catch(...) {} } 22 AA23 A(const A&) { try { bar(); } catch(...) { throw; } } 24 }; 25 26 A<A<int> > a; 27 28