
Changed the warning message: - **From**: 'Attempt to free released memory' **To**: 'Attempt to release already released memory' - **From**: 'Attempt to free non-owned memory' **To**: 'Attempt to release non-owned memory' - **From**: 'Use of memory after it is freed' **To**: 'Use of memory after it is released' All connected tests and their expectations have been changed accordingly. Inspired by [this PR](https://github.com/llvm/llvm-project/pull/147542#discussion_r2195197922)
19 lines
474 B
C
19 lines
474 B
C
#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
|