1 // { dg-do run  }
2 // Test for calling placement delete.
3 
4 #include <new>
5 #include <stddef.h>
6 
7 int r = 1;
8 
9 struct A {
AA10   A() { throw 1; }
deleteA11   void operator delete (void *p, int, int) { r = 0; ::operator delete (p); }
12 };
13 
new(size_t size,int,int)14 void * operator new (size_t size, int, int) { return operator new (size); }
15 
main()16 int main ()
17 {
18   try {
19     A* ap = new (1, 5) A;
20   } catch (...) {  }
21 
22   return r;
23 }
24