Modify Store interface: GetSVal/SetSVal => Retrieve/Bind.

llvm-svn: 57896
This commit is contained in:
Zhongxing Xu 2008-10-21 06:27:32 +00:00
parent 0aee1cd5a3
commit 8f6855e642
5 changed files with 29 additions and 29 deletions

View File

@ -422,7 +422,7 @@ public:
SVal GetSVal(const GRState* St, Loc LV, QualType T = QualType()) {
return StoreMgr->GetSVal(St->getStore(), LV, T);
return StoreMgr->Retrieve(St->getStore(), LV, T);
}
SVal GetSVal(const GRState* St, const MemRegion* R) {
@ -430,7 +430,7 @@ public:
}
void SetSVal(GRState& St, Loc LV, SVal V) {
St.St = StoreMgr->SetSVal(St.St, LV, V);
St.St = StoreMgr->Bind(St.St, LV, V);
}
const GRState* SetSVal(const GRState* St, Loc LV, SVal V);

View File

@ -39,13 +39,13 @@ public:
typedef llvm::DenseSet<SymbolID> DeadSymbolsTy;
virtual ~StoreManager() {}
virtual SVal GetSVal(Store St, Loc LV, QualType T = QualType()) = 0;
virtual SVal Retrieve(Store St, Loc LV, QualType T = QualType()) = 0;
virtual SVal GetRegionSVal(Store St, const MemRegion* R) {
return GetSVal(St, loc::MemRegionVal(R));
return Retrieve(St, loc::MemRegionVal(R));
}
virtual Store SetSVal(Store St, Loc LV, SVal V) = 0;
virtual Store Bind(Store St, Loc LV, SVal V) = 0;
virtual Store Remove(Store St, Loc LV) = 0;
virtual Store getInitialStore() = 0;
virtual MemRegionManager& getRegionManager() = 0;

View File

@ -34,8 +34,8 @@ public:
virtual ~BasicStoreManager() {}
virtual SVal GetSVal(Store St, Loc LV, QualType T);
virtual Store SetSVal(Store St, Loc LV, SVal V);
virtual SVal Retrieve(Store St, Loc LV, QualType T);
virtual Store Bind(Store St, Loc LV, SVal V);
virtual Store Remove(Store St, Loc LV);
virtual Store getInitialStore();
@ -133,7 +133,7 @@ SVal BasicStoreManager::getLValueElement(const GRState* St, SVal Base,
return Base;
}
SVal BasicStoreManager::GetSVal(Store St, Loc LV, QualType T) {
SVal BasicStoreManager::Retrieve(Store St, Loc LV, QualType T) {
if (isa<UnknownVal>(LV))
return UnknownVal();
@ -177,7 +177,7 @@ SVal BasicStoreManager::GetSVal(Store St, Loc LV, QualType T) {
return UnknownVal();
}
Store BasicStoreManager::SetSVal(Store store, Loc LV, SVal V) {
Store BasicStoreManager::Bind(Store store, Loc LV, SVal V) {
switch (LV.getSubKind()) {
case loc::MemRegionKind: {
const VarRegion* R =
@ -315,7 +315,7 @@ Store BasicStoreManager::getInitialStore() {
? SVal::GetSymbolValue(StateMgr.getSymbolManager(), VD)
: UndefinedVal();
St = SetSVal(St, loc::MemRegionVal(MRMgr.getVarRegion(VD)), X);
St = Bind(St, loc::MemRegionVal(MRMgr.getVarRegion(VD)), X);
}
}
}
@ -355,16 +355,16 @@ Store BasicStoreManager::AddDecl(Store store,
if (!Ex) {
QualType T = VD->getType();
if (Loc::IsLocType(T))
store = SetSVal(store, getLoc(VD),
loc::ConcreteInt(BasicVals.getValue(0, T)));
store = Bind(store, getLoc(VD),
loc::ConcreteInt(BasicVals.getValue(0, T)));
else if (T->isIntegerType())
store = SetSVal(store, getLoc(VD),
nonloc::ConcreteInt(BasicVals.getValue(0, T)));
store = Bind(store, getLoc(VD),
nonloc::ConcreteInt(BasicVals.getValue(0, T)));
else {
// assert(0 && "ignore other types of variables");
}
} else {
store = SetSVal(store, getLoc(VD), InitVal);
store = Bind(store, getLoc(VD), InitVal);
}
}
} else {
@ -382,7 +382,7 @@ Store BasicStoreManager::AddDecl(Store store,
: cast<SVal>(nonloc::SymbolVal(Sym));
}
store = SetSVal(store, getLoc(VD), V);
store = Bind(store, getLoc(VD), V);
}
}

View File

@ -63,7 +63,7 @@ const GRState* GRStateManager::SetSVal(const GRState* St, Loc LV,
SVal V) {
Store OldStore = St->getStore();
Store NewStore = StoreMgr->SetSVal(OldStore, LV, V);
Store NewStore = StoreMgr->Bind(OldStore, LV, V);
if (NewStore == OldStore)
return St;

View File

@ -38,8 +38,8 @@ public:
virtual ~RegionStoreManager() {}
SVal GetSVal(Store S, Loc L, QualType T);
Store SetSVal(Store St, Loc LV, SVal V);
SVal Retrieve(Store S, Loc L, QualType T);
Store Bind(Store St, Loc LV, SVal V);
Store getInitialStore();
@ -65,7 +65,7 @@ Loc RegionStoreManager::getElementLoc(const VarDecl* VD, SVal Idx) {
return loc::MemRegionVal(ER);
}
SVal RegionStoreManager::GetSVal(Store S, Loc L, QualType T) {
SVal RegionStoreManager::Retrieve(Store S, Loc L, QualType T) {
assert(!isa<UnknownVal>(L) && "location unknown");
assert(!isa<UndefinedVal>(L) && "location undefined");
@ -97,7 +97,7 @@ SVal RegionStoreManager::GetSVal(Store S, Loc L, QualType T) {
}
}
Store RegionStoreManager::SetSVal(Store store, Loc LV, SVal V) {
Store RegionStoreManager::Bind(Store store, Loc LV, SVal V) {
assert(LV.getSubKind() == loc::MemRegionKind);
const MemRegion* R = cast<loc::MemRegionVal>(LV).getRegion();
@ -135,7 +135,7 @@ Store RegionStoreManager::getInitialStore() {
? SVal::GetSymbolValue(StateMgr.getSymbolManager(), VD)
: UndefinedVal();
St = SetSVal(St, getVarLoc(VD), X);
St = Bind(St, getVarLoc(VD), X);
}
}
}
@ -160,16 +160,16 @@ Store RegionStoreManager::AddDecl(Store store,
QualType T = VD->getType();
if (Loc::IsLocType(T))
store = SetSVal(store, getVarLoc(VD),
loc::ConcreteInt(BasicVals.getValue(0, T)));
store = Bind(store, getVarLoc(VD),
loc::ConcreteInt(BasicVals.getValue(0, T)));
else if (T->isIntegerType())
store = SetSVal(store, getVarLoc(VD),
loc::ConcreteInt(BasicVals.getValue(0, T)));
store = Bind(store, getVarLoc(VD),
loc::ConcreteInt(BasicVals.getValue(0, T)));
else
assert("ignore other types of variables");
} else {
store = SetSVal(store, getVarLoc(VD), InitVal);
store = Bind(store, getVarLoc(VD), InitVal);
}
}
} else {
@ -186,7 +186,7 @@ Store RegionStoreManager::AddDecl(Store store,
? cast<SVal>(loc::SymbolVal(Sym))
: cast<SVal>(nonloc::SymbolVal(Sym));
}
store = SetSVal(store, getVarLoc(VD), V);
store = Bind(store, getVarLoc(VD), V);
} else if (T->isArrayType()) {
// Only handle constant size array.
@ -197,7 +197,7 @@ Store RegionStoreManager::AddDecl(Store store,
for (llvm::APInt i = llvm::APInt::getNullValue(Size.getBitWidth());
i != Size; ++i) {
nonloc::ConcreteInt Idx(BasicVals.getValue(llvm::APSInt(i)));
store = SetSVal(store, getElementLoc(VD, Idx), UndefinedVal());
store = Bind(store, getElementLoc(VD, Idx), UndefinedVal());
}
}
} else if (T->isStructureType()) {