[cfe-commits] r73996 - in /cfe/trunk: include/clang/Analysis/PathSensitive/GRState.h lib/Analysis/GRExprEngine.cpp lib/Analysis/GRSimpleVals.cpp lib/Analysis/GRState.cpp
Ted Kremenek
kremenek at apple.com
Tue Jun 23 13:38:51 PDT 2009
Author: kremenek
Date: Tue Jun 23 15:38:51 2009
New Revision: 73996
URL: http://llvm.org/viewvc/llvm-project?rev=73996&view=rev
Log:
Remove GRStateManager::BindLoc() and GRStateManager::Unbind().
Modified:
cfe/trunk/include/clang/Analysis/PathSensitive/GRState.h
cfe/trunk/lib/Analysis/GRExprEngine.cpp
cfe/trunk/lib/Analysis/GRSimpleVals.cpp
cfe/trunk/lib/Analysis/GRState.cpp
Modified: cfe/trunk/include/clang/Analysis/PathSensitive/GRState.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Analysis/PathSensitive/GRState.h?rev=73996&r1=73995&r2=73996&view=diff
==============================================================================
--- cfe/trunk/include/clang/Analysis/PathSensitive/GRState.h (original)
+++ cfe/trunk/include/clang/Analysis/PathSensitive/GRState.h Tue Jun 23 15:38:51 2009
@@ -593,17 +593,7 @@
return UnknownVal();
}
-
- const GRState* BindLoc(const GRState* St, Loc LV, SVal V) {
- return StoreMgr->Bind(St, LV, V);
- }
- void Unbind(GRState& St, Loc LV) {
- St.St = StoreMgr->Remove(St.St, LV);
- }
-
- const GRState* Unbind(const GRState* St, Loc LV);
-
const GRState* getPersistentState(GRState& Impl);
bool isEqual(const GRState* state, Expr* Ex, const llvm::APSInt& V);
@@ -722,7 +712,7 @@
}
inline const GRState *GRState::bindLoc(Loc LV, SVal V) const {
- return Mgr->BindLoc(this, LV, V);
+ return Mgr->StoreMgr->Bind(this, LV, V);
}
inline const GRState *GRState::bindLoc(SVal LV, SVal V) const {
@@ -844,10 +834,6 @@
scanReachableSymbols(val, cb);
return cb;
}
-
-inline const GRState *GRState::unbindLoc(Loc LV) const {
- return Mgr->Unbind(this, LV);
-}
} // end clang namespace
Modified: cfe/trunk/lib/Analysis/GRExprEngine.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/GRExprEngine.cpp?rev=73996&r1=73995&r2=73996&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/GRExprEngine.cpp (original)
+++ cfe/trunk/lib/Analysis/GRExprEngine.cpp Tue Jun 23 15:38:51 2009
@@ -1046,7 +1046,7 @@
else {
// We are binding to a value other than 'unknown'. Perform the binding
// using the StoreManager.
- newState = StateMgr.BindLoc(state, cast<Loc>(location), Val);
+ newState = state->bindLoc(cast<Loc>(location), Val);
}
// The next thing to do is check if the GRTransferFuncs object wants to
Modified: cfe/trunk/lib/Analysis/GRSimpleVals.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/GRSimpleVals.cpp?rev=73996&r1=73995&r2=73996&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/GRSimpleVals.cpp (original)
+++ cfe/trunk/lib/Analysis/GRSimpleVals.cpp Tue Jun 23 15:38:51 2009
@@ -354,24 +354,23 @@
CallExpr* CE, SVal L,
ExplodedNode<GRState>* Pred) {
- GRStateManager& StateMgr = Eng.getStateManager();
- const GRState* St = Builder.GetState(Pred);
+ const GRState* state = Builder.GetState(Pred);
// Invalidate all arguments passed in by reference (Locs).
for (CallExpr::arg_iterator I = CE->arg_begin(), E = CE->arg_end();
I != E; ++I) {
- SVal V = St->getSVal(*I);
+ SVal V = state->getSVal(*I);
if (isa<loc::MemRegionVal>(V)) {
const MemRegion *R = cast<loc::MemRegionVal>(V).getRegion();
+
if (R->isBoundable())
- St = StateMgr.BindLoc(St, cast<Loc>(V), UnknownVal());
+ state = state->bindLoc(cast<Loc>(V), UnknownVal());
} else if (isa<nonloc::LocAsInteger>(V))
- St = StateMgr.BindLoc(St, cast<nonloc::LocAsInteger>(V).getLoc(),
- UnknownVal());
-
+ state = state->bindLoc(cast<nonloc::LocAsInteger>(V).getLoc(),
+ UnknownVal());
}
// Make up a symbol for the return value of this function.
@@ -381,10 +380,10 @@
if (Loc::IsLocType(T) || (T->isIntegerType() && T->isScalarType())) {
unsigned Count = Builder.getCurrentBlockCount();
SVal X = Eng.getValueManager().getConjuredSymbolVal(CE, Count);
- St = St->bindExpr(CE, X, Eng.getCFG().isBlkExpr(CE), false);
+ state = state->bindExpr(CE, X, Eng.getCFG().isBlkExpr(CE), false);
}
- Builder.MakeNode(Dst, CE, Pred, St);
+ Builder.MakeNode(Dst, CE, Pred, state);
}
//===----------------------------------------------------------------------===//
Modified: cfe/trunk/lib/Analysis/GRState.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/GRState.cpp?rev=73996&r1=73995&r2=73996&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/GRState.cpp (original)
+++ cfe/trunk/lib/Analysis/GRState.cpp Tue Jun 23 15:38:51 2009
@@ -56,16 +56,16 @@
SymReaper);
}
-const GRState* GRStateManager::Unbind(const GRState* St, Loc LV) {
- Store OldStore = St->getStore();
- Store NewStore = StoreMgr->Remove(OldStore, LV);
+const GRState *GRState::unbindLoc(Loc LV) const {
+ Store OldStore = getStore();
+ Store NewStore = Mgr->StoreMgr->Remove(OldStore, LV);
if (NewStore == OldStore)
- return St;
+ return this;
- GRState NewSt = *St;
+ GRState NewSt = *this;
NewSt.St = NewStore;
- return getPersistentState(NewSt);
+ return Mgr->getPersistentState(NewSt);
}
const GRState* GRStateManager::getInitialState() {
More information about the cfe-commits
mailing list