blob: 96aa4af672f50908e7d24fc291491ca028b9d9c2 (
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 released [cplusplus.NewDelete]}}
}
#endif // OVERLOADED_DELETE_IN_SYSTEM_HEADER
|