diff options
author | Anton Yartsev <anton.yartsev@gmail.com> | 2015-03-04 23:18:21 +0000 |
---|---|---|
committer | Anton Yartsev <anton.yartsev@gmail.com> | 2015-03-04 23:18:21 +0000 |
commit | 9907fc9053cae863870205c69e2ddbd4e29c857d (patch) | |
tree | 9a25934c518db309515c4721a61a9026ca18140b /clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp | |
parent | 6ab161497a60e2c12fde66a618cf9ce061a7cb3c (diff) | |
download | bcm5719-llvm-9907fc9053cae863870205c69e2ddbd4e29c857d.tar.gz bcm5719-llvm-9907fc9053cae863870205c69e2ddbd4e29c857d.zip |
[analyzer] Bug fix: do not report leaks for alloca()
llvm-svn: 231314
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp index d77af6a4fb2..f2afcca9710 100644 --- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp @@ -1934,6 +1934,11 @@ void MallocChecker::reportLeak(SymbolRef Sym, ExplodedNode *N, if (!CheckKind.hasValue()) return; + const RefState *RS = C.getState()->get<RegionState>(Sym); + assert(RS); + if (RS->getAllocationFamily() == AF_Alloca) + return; + assert(N); if (!BT_Leak[*CheckKind]) { BT_Leak[*CheckKind].reset( |