Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / g++.old-deja / g++.law / scope2.C
blob13c02c2ae0ff900cc0eda52ceff46419d8516492
1 // { dg-do run  }
2 // GROUPS passed scoping
3 // scoping file
4 // From: svkakkad@cs.utexas.edu (Sheetal V. Kakkad)
5 // Date:     Tue, 5 Oct 93 12:38:49 -0500
6 // Subject:  G++ 2.4.5 - global delete operator not called when using "::delete"
7 // Message-ID: <9310051738.AA14586@boogie.cs.utexas.edu>
9 #include <stdio.h>
10 #include <stddef.h>
11 #include <stdlib.h>
13 class foo
15  public:
16   foo () { ; }
17   ~foo () { ; }
18   void *operator new (size_t);
19   void operator delete (void *);
22 void *foo::operator new (size_t size)
24   return malloc (size);
27 int overloaded_delete = 0;
29 void foo::operator delete (void *data)
31   free ((char *) data);
32   overloaded_delete++;
35 int main ()
37   foo *f = new foo;
38   foo *ff = ::new foo;
39   ::delete ff;          // should call the default delete operator
40   delete f;
41   if (overloaded_delete == 1)
42     printf ("PASS\n");
43   else
44     { printf ("FAIL\n"); return 1; }