OSDN Git Service

PR c++/47277
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / init / placement4.C
1 // PR c++/34158
2
3 typedef __SIZE_TYPE__ size_t;
4 extern "C" void* malloc (size_t);
5 extern "C" void free (void *);
6
7 template <class T> class undef;
8
9 struct A {
10   A() { throw 1; }
11 };
12
13 template<typename T> class Pool { };
14
15 void *operator new(size_t size,Pool<int>& pool)
16 {
17   return malloc(size);
18 }
19
20 template<typename T>
21 void operator delete(void *p,Pool<T>& pool)
22 {
23   undef<T> t;                   // { dg-error "incomplete" }
24   free(p);
25 }
26
27 int main ()
28 {
29   Pool<int> pool;
30   new (pool) A();               // { dg-message "instantiated" }
31   return 0;
32 }