1 // { dg-do run  }
2 // Origin: Alexander Schiemann (aschiem@count.math.uni-sb.de)
3 
4 typedef __SIZE_TYPE__ size_t;
5 
6 int i;
7 
8 struct B{};
9 
10 struct A{
11 
newA12   static void* operator new(size_t)
13   {return &i;}
14 
15   inline static void operator delete(void*p);
16 
deleteA17   static void operator delete(void*, const B&){}
18 
19 };
20 
21 
delete(void * p)22 inline void A::operator delete(void*p)
23 {A::operator delete(p,B());}
24 
25 
main()26 int main()
27 {A *ap=new A;
28 delete ap;}
29