// 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;
}
