blob: 8243961d84830b4f27c4f8c208fc2f3ce363a547 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#ifndef OVERLOADED_DELETE_IN_HEADER
#define OVERLOADED_DELETE_IN_HEADER
struct DeleteInHeader {
int data;
static void operator delete(void *ptr);
};
void DeleteInHeader::operator delete(void *ptr) {
DeleteInHeader *self = (DeleteInHeader *)ptr;
self->data = 1; // no-warning: Still alive.
::operator delete(ptr);
self->data = 2; // expected-warning {{Use of memory after it is freed [cplusplus.NewDelete]}}
}
#endif // OVERLOADED_DELETE_IN_SYSTEM_HEADER
|