aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.old-deja/g++.eh/pdel1.C
blob: fd7ecff3c19a181efaf7f2eb82f3d1da0203a0bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// { dg-do run  }
// Test for calling placement delete.

#include <new>
#include <stddef.h>

int r = 1;

struct A {
  A() { throw 1; }
  void operator delete (void *p, int, int) { r = 0; ::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;
}