1*c87b03e5Sespie // GROUPS passed operators
2*c87b03e5Sespie // opr-del file
3*c87b03e5Sespie // Message-Id: <199301272137.AA25213@world.std.com>
4*c87b03e5Sespie // From: kol@world.std.com (Nikolay Yatsenko)
5*c87b03e5Sespie // Subject: bug report
6*c87b03e5Sespie // Date: Wed, 27 Jan 1993 16:37:30 -0500
7*c87b03e5Sespie 
8*c87b03e5Sespie extern "C" int printf(const char* ...);
9*c87b03e5Sespie 
10*c87b03e5Sespie int     delete_counter = -1;
11*c87b03e5Sespie 
12*c87b03e5Sespie struct T{
deleteT13*c87b03e5Sespie   void operator delete (void * p) {delete_counter ++; ::operator delete(p);}
14*c87b03e5Sespie };
15*c87b03e5Sespie 
main(void)16*c87b03e5Sespie int main(void)
17*c87b03e5Sespie {
18*c87b03e5Sespie   T * ps1 = new T;
19*c87b03e5Sespie 
20*c87b03e5Sespie   ::delete ps1;             // Wrong T::operator delete() is called here
21*c87b03e5Sespie 
22*c87b03e5Sespie   if (delete_counter != -1)
23*c87b03e5Sespie     { printf ("FAIL\n"); return 1; }
24*c87b03e5Sespie   else
25*c87b03e5Sespie     printf ("PASS\n");
26*c87b03e5Sespie   return 0;
27*c87b03e5Sespie }
28