blob: 771c83717c86da581703c63dfc597383421ee366 [file] [log] [blame]
// { 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<typename T> void foo(void* p, T t)
{
new(p) T(t);
}
void bar();
template<typename T> struct A
{
T* p;
A() { try { foo(p, T()); } catch(...) {} }
A(const A&) { try { bar(); } catch(...) { throw; } }
};
A<A<int> > a;