Rebase.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.pt / spec30.C
blobc3174d1669810f9a22d2bb9e80fc958fdeffc3dc
1 // { dg-do run  }
2 #include <cstddef>
4 template <class T>      
5 struct S {
6   void *operator new (size_t);
7   void *operator new (size_t, int);
8   void operator delete (void*);
9 };
11 static void* s[2];
13 template <>
14 void* S<int>::operator new (size_t b) 
15
16   s[0] = ::operator new(b);
17   return s[0];
20 template <>
21 void* S<int>::operator new (size_t b, int)
23   s[1] = ::operator new(b);
24   return s[1];
27 template <>
28 void S<int>::operator delete (void*) 
32 int main()
34   S<int>* s1 = new S<int>;
35   S<int>* s2 = new(3) S<int>;
37   if (s1 != s[0] || s2 != s[1])
38     return 1;
40   delete s1;
41   delete s2;