OSDN Git Service

2010-02-15 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / torture / pr40642.C
1 // { dg-do compile }
2 // { dg-options "-fprofile-generate" }
3
4 // GCC used to ICE with some EH edge missing.
5
6 inline void* operator new(__SIZE_TYPE__, void* p) throw() { return p; }
7 inline void operator delete (void*, void*) throw() { }
8
9 template<typename T> void foo(void* p, T t)
10 {
11   new(p) T(t);
12 }
13
14 void bar();
15
16 template<typename T> struct A
17 {
18   T* p;
19
20   A() { try { foo(p, T()); } catch(...) {} }
21
22   A(const A&) { try { bar(); } catch(...) { throw; } }
23 };
24
25 A<A<int> > a;
26