OSDN Git Service

Scan "lea\[lq\]?\[ \t\]" instead of "lea\[ \t\]".
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.law / scope2.C
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>
8
9 #include <stdio.h>
10 #include <stddef.h>
11 #include <stdlib.h>
12
13 class foo
14 {
15  public:
16   foo () { ; }
17   ~foo () { ; }
18   void *operator new (size_t);
19   void operator delete (void *);
20 };
21
22 void *foo::operator new (size_t size)
23 {
24   return malloc (size);
25 }
26
27 int overloaded_delete = 0;
28
29 void foo::operator delete (void *data)
30 {
31   free ((char *) data);
32   overloaded_delete++;
33 }
34
35 int main ()
36 {
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; }
45 }