blob: 7fdd5b022381530631368d3445bffae3d5585d75 (
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
|
// { dg-do assemble }
// 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*){}
};
int main()
{
B* p = new B;
delete p;
return 0;
}
|