// { dg-do run } // Test for not calling mismatched placement delete. #include <new> #include <stddef.h> int r = 0; struct A { A() { throw 1; } void operator delete (void *p, int, long) { r = 1; ::operator delete (p); } }; void * operator new (size_t size, int, int) { return operator new (size); } int main () { try { A* ap = new (1, 5) A; } catch (...) { } return r; }