// 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}} }