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)22inline void A::operator delete(void*p) 23 {A::operator delete(p,B());} 24 25 main()26int main() 27 {A *ap=new A; 28 delete ap;} 29