diff options
author | Jordy Rose <jediknil@belkadan.com> | 2011-08-28 06:02:28 +0000 |
---|---|---|
committer | Jordy Rose <jediknil@belkadan.com> | 2011-08-28 06:02:28 +0000 |
commit | 93bd5ca766c4d7906878f4ffe76ce1b2080e540b (patch) | |
tree | 3cf25426fc5d74a72533bce31c88d57d98f3b772 | |
parent | fe27971d54d26997149d6b84057f04ff398d1d5d (diff) |
[analyzer] Remove the ProgramState argument from ExprEngine::evalBind; we were ignoring it anyway. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138720 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h | 3 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/ExprEngine.cpp | 12 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/ExprEngineC.cpp | 3 |
3 files changed, 6 insertions, 12 deletions
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h index 7a3b381301..b2c1c4a53a 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h @@ -420,8 +420,7 @@ protected: /// evalBind - Handle the semantics of binding a value to a specific location. /// This method is used by evalStore, VisitDeclStmt, and others. void evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE, ExplodedNode *Pred, - const ProgramState *St, SVal location, SVal Val, - bool atDeclInit = false); + SVal location, SVal Val, bool atDeclInit = false); public: // FIXME: 'tag' should be removed, and a LocationContext should be used diff --git a/lib/StaticAnalyzer/Core/ExprEngine.cpp b/lib/StaticAnalyzer/Core/ExprEngine.cpp index 59ca90ac58..1a32d43d4d 100644 --- a/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -1276,12 +1276,8 @@ void ExprEngine::VisitMemberExpr(const MemberExpr *M, ExplodedNode *Pred, /// evalBind - Handle the semantics of binding a value to a specific location. /// This method is used by evalStore and (soon) VisitDeclStmt, and others. void ExprEngine::evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE, - ExplodedNode *Pred, const ProgramState *state, - SVal location, SVal Val, bool atDeclInit) { - - // FIXME: We probably shouldn't be passing a state and then dropping it on the - // floor, but while we are, we can at least assert that we're doing it right. - assert(state == Pred->getState()); + ExplodedNode *Pred, + SVal location, SVal Val, bool atDeclInit) { // Do a previsit of the bind. ExplodedNodeSet CheckedSet; @@ -1291,7 +1287,7 @@ void ExprEngine::evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE, for (ExplodedNodeSet::iterator I = CheckedSet.begin(), E = CheckedSet.end(); I!=E; ++I) { - state = (*I)->getState(); + const ProgramState *state = (*I)->getState(); if (atDeclInit) { const VarRegion *VR = @@ -1346,7 +1342,7 @@ void ExprEngine::evalStore(ExplodedNodeSet &Dst, const Expr *AssignE, ProgramPoint::PostStoreKind); for (ExplodedNodeSet::iterator NI=Tmp.begin(), NE=Tmp.end(); NI!=NE; ++NI) - evalBind(Dst, StoreE, *NI, (*NI)->getState(), location, Val); + evalBind(Dst, StoreE, *NI, location, Val); } void ExprEngine::evalLoad(ExplodedNodeSet &Dst, const Expr *Ex, diff --git a/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/lib/StaticAnalyzer/Core/ExprEngineC.cpp index a4e640c0e9..47debad09c 100644 --- a/lib/StaticAnalyzer/Core/ExprEngineC.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngineC.cpp @@ -361,8 +361,7 @@ void ExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred, Builder->getCurrentBlockCount()); } - evalBind(Dst, DS, N, state, - loc::MemRegionVal(state->getRegion(VD, LC)), InitVal, true); + evalBind(Dst, DS, N, state->getLValue(VD, LC), InitVal, true); } else { MakeNode(Dst, DS, N, state->bindDeclWithNoInit(state->getRegion(VD, LC))); |