aboutsummaryrefslogtreecommitdiff
path: root/clang/lib
diff options
context:
space:
mode:
authorKirstóf Umann <dkszelethus@gmail.com>2020-06-01 22:03:05 +0200
committerKirstóf Umann <dkszelethus@gmail.com>2020-06-01 22:38:29 +0200
commit6bedfaf5200474f9a72b059f0d99dd39ece1c03e (patch)
treee86c093a3024246fa5a45d1a7995461b20e16290 /clang/lib
parent23776a178f8379e1d9b4d79952bac916c1fa70fe (diff)
downloadllvm-6bedfaf5200474f9a72b059f0d99dd39ece1c03e.zip
llvm-6bedfaf5200474f9a72b059f0d99dd39ece1c03e.tar.gz
llvm-6bedfaf5200474f9a72b059f0d99dd39ece1c03e.tar.bz2
[analyzer][MallocChecker] Fix the incorrect retrieval of the from argument in realloc()
In the added testfile, the from argument was recognized as &Element{SymRegion{reg_$0<long * global_a>},-1 S64b,long} instead of reg_$0<long * global_a>.
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
index fa69bc2..fb6d02b 100644
--- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
@@ -2470,7 +2470,7 @@ MallocChecker::ReallocMemAux(CheckerContext &C, const CallEvent &Call,
Kind = OAR_DoNotTrackAfterFailure;
// Get the from and to pointer symbols as in toPtr = realloc(fromPtr, size).
- SymbolRef FromPtr = arg0Val.getAsSymbol();
+ SymbolRef FromPtr = arg0Val.getLocSymbolInBase();
SVal RetVal = C.getSVal(CE);
SymbolRef ToPtr = RetVal.getAsSymbol();
assert(FromPtr && ToPtr &&