aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Core/ProgramState.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/StaticAnalyzer/Core/ProgramState.cpp')
-rw-r--r--lib/StaticAnalyzer/Core/ProgramState.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/StaticAnalyzer/Core/ProgramState.cpp b/lib/StaticAnalyzer/Core/ProgramState.cpp
index 3ce3db7313..07f76c585f 100644
--- a/lib/StaticAnalyzer/Core/ProgramState.cpp
+++ b/lib/StaticAnalyzer/Core/ProgramState.cpp
@@ -644,15 +644,13 @@ bool ProgramState::isTainted(const Stmt *S, TaintTagType Kind) const {
}
bool ProgramState::isTainted(SVal V, TaintTagType Kind) const {
- const SymExpr* Sym = V.getAsSymbol();
- if (!Sym)
- Sym = V.getAsSymbolicExpression();
- if (!Sym)
- return false;
- return isTainted(Sym, Kind);
+ return isTainted(V.getAsSymExpr(), Kind);
}
bool ProgramState::isTainted(const SymExpr* Sym, TaintTagType Kind) const {
+ if (!Sym)
+ return false;
+
// Check taint on derived symbols.
if (const SymbolDerived *SD = dyn_cast<SymbolDerived>(Sym))
return isTainted(SD->getParentSymbol(), Kind);