Add an UNSPEC_PROLOGUE_USE to prevent the link register from being considered dead.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.law / scope2.C
blobd216f4da1b5c735bb7885961ec35133e167ed021
1 // GROUPS passed scoping
2 // scoping file
3 // From: svkakkad@cs.utexas.edu (Sheetal V. Kakkad)
4 // Date:     Tue, 5 Oct 93 12:38:49 -0500
5 // Subject:  G++ 2.4.5 - global delete operator not called when using "::delete"
6 // Message-ID: <9310051738.AA14586@boogie.cs.utexas.edu>
8 #include <stdio.h>
9 #include <stddef.h>
10 #include <stdlib.h>
12 class foo
14  public:
15   foo () { ; }
16   ~foo () { ; }
17   void *operator new (size_t);
18   void operator delete (void *);
21 void *foo::operator new (size_t size)
23   return malloc (size);
26 int overloaded_delete = 0;
28 void foo::operator delete (void *data)
30   free ((char *) data);
31   overloaded_delete++;
34 int main ()
36   foo *f = new foo;
37   foo *ff = ::new foo;
38   ::delete ff;          // should call the default delete operator
39   delete f;
40   if (overloaded_delete == 1)
41     printf ("PASS\n");
42   else
43     { printf ("FAIL\n"); return 1; }