24 lines
393 B
C
24 lines
393 B
C
// { 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;
|
|
}
|