// RUN: %clang_analyze_cc1 -analyzer-checker=cplusplus.NewDelete -verify %s | |
#include "Inputs/system-header-simulator-cxx.h" | |
struct S { | |
S() : Data(new int) {} | |
~S() { delete Data; } | |
int *getData() { return Data; } | |
private: | |
int *Data; | |
}; | |
int *freeAfterReturnTemp() { | |
return S().getData(); // expected-warning {{Use of memory after it is freed}} | |
} | |
int *freeAfterReturnLocal() { | |
S X; | |
return X.getData(); // expected-warning {{Use of memory after it is freed}} | |
} |