summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-01-13 00:56:51 +0000
committerAnna Zaks <ganna@apple.com>2012-01-13 00:56:51 +0000
commita31f6b9559c7473a7871dc69a44af267ab1de978 (patch)
tree767f0eb1f0e509c287a1261b779a564f74fe479e /clang/lib/StaticAnalyzer
parent622813009955259a084a1fc3f0816c00d89cf12d (diff)
downloadbcm5719-llvm-a31f6b9559c7473a7871dc69a44af267ab1de978.tar.gz
bcm5719-llvm-a31f6b9559c7473a7871dc69a44af267ab1de978.zip
[analyzer] Taint: when looking up a binding, provide the type.
llvm-svn: 148080
Diffstat (limited to 'clang/lib/StaticAnalyzer')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
index 81f16bdfa87..1d112c53280 100644
--- a/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
@@ -243,7 +243,10 @@ SymbolRef GenericTaintChecker::getPointedToSymbol(CheckerContext &C,
return 0;
}
- SVal Val = State->getSVal(*AddrLoc);
+ const PointerType *ArgTy =
+ dyn_cast<PointerType>(Arg->getType().getCanonicalType().getTypePtr());
+ assert(ArgTy);
+ SVal Val = State->getSVal(*AddrLoc, ArgTy->getPointeeType());
return Val.getAsSymbol();
}
OpenPOWER on IntegriCloud