• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Bug: We were calling f() twice, for both the placement new and placement
2 // delete calls.
3 
4 // { dg-do run }
5 
operator new(__SIZE_TYPE__ sz,void *)6 void* operator new    (__SIZE_TYPE__ sz, void*) { return operator new (sz); }
operator delete(void * p,void *)7 void  operator delete (void* p, void*)         { operator delete (p); }
8 
AA9 struct A { A() { throw 1; } };
10 
11 int c;
f()12 void *f() { ++c; return 0; }
13 
main()14 int main()
15 {
16   try
17     {
18       new (f()) A;
19     }
20   catch (...) {}
21   return c != 1;
22 }
23