aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.mike/p710.C
blob: c6ab3b1d902abf209faa0e594eeb04303600d8ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Build don't link: 
// GROUPS passed delete
/*
  Bug Id: 
  PRMS Id: p0000710
  Bug is : overloading operator delete in class def not allowed
*/

/*
  In addition to this bug, the compiler permits overloading operator
  delete in the class definition.  This is verboten, and should be
  caught by a regression suite.  In other words, the following is also a
  bug that's not caught:
*/


#include <stdlib.h>

extern "C" 
{
   int printf(const char*, ...);
};



class B
{
 public:
   int x;
   virtual ~B() {}
   void operator delete(void*,size_t s)
  {
      printf("B::delete() %d\n",s);
   }
   void operator delete(void*){}
};

main()
{
   B* p = new B;
   delete p;
   return 0;
}