diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2009-11-18 14:59:57 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2009-11-18 14:59:57 +0000 |
| commit | b3d5a323a5ca92ea73443499cee2f15db1ff0fb3 (patch) | |
| tree | 60a1694bec5a44d15456acc880cb2f91619f66aa /lib/Analysis/NSErrorChecker.cpp | |
| parent | 8f57cb0305232cb53fff00ef151ca716766f3437 (diff) | |
Notes
Diffstat (limited to 'lib/Analysis/NSErrorChecker.cpp')
| -rw-r--r-- | lib/Analysis/NSErrorChecker.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/Analysis/NSErrorChecker.cpp b/lib/Analysis/NSErrorChecker.cpp index 307686ff57b3..93b617b115d9 100644 --- a/lib/Analysis/NSErrorChecker.cpp +++ b/lib/Analysis/NSErrorChecker.cpp @@ -209,15 +209,12 @@ void NSErrorChecker::CheckParamDeref(const VarDecl *Param, return; // Iterate over the implicit-null dereferences. - NullDerefChecker *Checker = Eng.getChecker<NullDerefChecker>(); - assert(Checker && "NullDerefChecker not exist."); - for (NullDerefChecker::iterator I = Checker->implicit_nodes_begin(), - E = Checker->implicit_nodes_end(); I != E; ++I) { - + ExplodedNode *const* I, *const* E; + llvm::tie(I, E) = GetImplicitNullDereferences(Eng); + for ( ; I != E; ++I) { const GRState *state = (*I)->getState(); - const SVal* X = state->get<GRState::NullDerefTag>(); - - if (!X || X->getAsSymbol() != ParamSym) + SVal location = state->getSVal((*I)->getLocationAs<StmtPoint>()->getStmt()); + if (location.getAsSymbol() != ParamSym) continue; // Emit an error. |
