brintos

brintos / llvm-project-archived public Read only

0
0
Text · 474 B · 96aa4af Raw
19 lines · c
1#ifndef OVERLOADED_DELETE_IN_HEADER2#define OVERLOADED_DELETE_IN_HEADER3 4struct DeleteInHeader {5  int data;6  static void operator delete(void *ptr);7};8 9void DeleteInHeader::operator delete(void *ptr) {10  DeleteInHeader *self = (DeleteInHeader *)ptr;11  self->data = 1; // no-warning: Still alive.12 13  ::operator delete(ptr);14 15  self->data = 2; // expected-warning {{Use of memory after it is released [cplusplus.NewDelete]}}16}17 18#endif // OVERLOADED_DELETE_IN_SYSTEM_HEADER19