forked from OSchip/llvm-project
Update some doxygen comments to be more rich. Remove StoreManager::GetRegionSVal.
llvm-svn: 61894
This commit is contained in:
parent
6ecd6f43b0
commit
f929b0aefe
|
@ -474,7 +474,7 @@ public:
|
|||
}
|
||||
|
||||
SVal GetSVal(const GRState* state, const MemRegion* R) {
|
||||
return StoreMgr->GetRegionSVal(state, R);
|
||||
return StoreMgr->Retrieve(state, loc::MemRegionVal(R));
|
||||
}
|
||||
|
||||
const GRState* BindLoc(const GRState* St, Loc LV, SVal V) {
|
||||
|
|
|
@ -47,18 +47,29 @@ protected:
|
|||
public:
|
||||
virtual ~StoreManager() {}
|
||||
|
||||
/// Retrieve - Retrieves the value bound to specified location. The optional
|
||||
/// QualType information provides a hint to the store indicating the expected
|
||||
/// type of the returned value.
|
||||
virtual SVal Retrieve(const GRState* state, Loc LV, QualType T=QualType()) =0;
|
||||
/// Return the value bound to specified location in a given state.
|
||||
/// \param[in] state The analysis state.
|
||||
/// \param[in] loc The symbolic memory location.
|
||||
/// \param[in] T An optional type that provides a hint indicating the
|
||||
/// expected type of the returned value. This is used if the value is
|
||||
/// lazily computed.
|
||||
/// \return The value bound to the location \c loc.
|
||||
virtual SVal Retrieve(const GRState* state, Loc loc,
|
||||
QualType T = QualType()) = 0;
|
||||
|
||||
/// GetRegionSVal - Retrieves the value bound to the specified region.
|
||||
SVal GetRegionSVal(const GRState* state, const MemRegion* R) {
|
||||
return Retrieve(state, loc::MemRegionVal(R));
|
||||
}
|
||||
// /// Retrieves the value bound to the specified region.
|
||||
// SVal GetRegionSVal(const GRState* state, const MemRegion* R) {
|
||||
// return Retrieve(state, loc::MemRegionVal(R));
|
||||
// }
|
||||
|
||||
/// Bind value V to location L.
|
||||
virtual const GRState* Bind(const GRState* St, Loc L, SVal V) = 0;
|
||||
/// Return a state with the specified value bound to the given location.
|
||||
/// \param[in] state The analysis state.
|
||||
/// \param[in] loc The symbolic memory location.
|
||||
/// \param[in] val The value to bind to location \c loc.
|
||||
/// \return A pointer to a GRState object that contains the same bindings as
|
||||
/// \c state with the addition of having the value specified by \c val bound
|
||||
/// to the location given for \c loc.
|
||||
virtual const GRState* Bind(const GRState* state, Loc loc, SVal val) = 0;
|
||||
|
||||
virtual Store Remove(Store St, Loc L) = 0;
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ public:
|
|||
|
||||
~BasicStoreManager() {}
|
||||
|
||||
SVal Retrieve(const GRState *state, Loc LV, QualType T);
|
||||
SVal Retrieve(const GRState *state, Loc loc, QualType T = QualType());
|
||||
|
||||
const GRState* Bind(const GRState* St, Loc L, SVal V) {
|
||||
Store store = St->getStore();
|
||||
|
@ -45,8 +45,8 @@ public:
|
|||
return StateMgr.MakeStateWithStore(St, store);
|
||||
}
|
||||
|
||||
Store BindInternal(Store St, Loc LV, SVal V);
|
||||
Store Remove(Store St, Loc LV);
|
||||
Store BindInternal(Store St, Loc loc, SVal V);
|
||||
Store Remove(Store St, Loc loc);
|
||||
Store getInitialStore();
|
||||
|
||||
// FIXME: Investigate what is using this. This method should be removed.
|
||||
|
@ -263,18 +263,18 @@ SVal BasicStoreManager::getLValueElement(const GRState* St, SVal Base,
|
|||
return UnknownVal();
|
||||
}
|
||||
|
||||
SVal BasicStoreManager::Retrieve(const GRState* state, Loc LV, QualType T) {
|
||||
SVal BasicStoreManager::Retrieve(const GRState* state, Loc loc, QualType T) {
|
||||
|
||||
if (isa<UnknownVal>(LV))
|
||||
if (isa<UnknownVal>(loc))
|
||||
return UnknownVal();
|
||||
|
||||
assert (!isa<UndefinedVal>(LV));
|
||||
assert (!isa<UndefinedVal>(loc));
|
||||
|
||||
switch (LV.getSubKind()) {
|
||||
switch (loc.getSubKind()) {
|
||||
|
||||
case loc::MemRegionKind: {
|
||||
const VarRegion* R =
|
||||
dyn_cast<VarRegion>(cast<loc::MemRegionVal>(LV).getRegion());
|
||||
dyn_cast<VarRegion>(cast<loc::MemRegionVal>(loc).getRegion());
|
||||
|
||||
if (!R)
|
||||
return UnknownVal();
|
||||
|
@ -294,7 +294,7 @@ SVal BasicStoreManager::Retrieve(const GRState* state, Loc LV, QualType T) {
|
|||
// invalidate their bindings). Just return Undefined.
|
||||
return UndefinedVal();
|
||||
case loc::FuncValKind:
|
||||
return LV;
|
||||
return loc;
|
||||
|
||||
default:
|
||||
assert (false && "Invalid Loc.");
|
||||
|
@ -304,11 +304,11 @@ SVal BasicStoreManager::Retrieve(const GRState* state, Loc LV, QualType T) {
|
|||
return UnknownVal();
|
||||
}
|
||||
|
||||
Store BasicStoreManager::BindInternal(Store store, Loc LV, SVal V) {
|
||||
switch (LV.getSubKind()) {
|
||||
Store BasicStoreManager::BindInternal(Store store, Loc loc, SVal V) {
|
||||
switch (loc.getSubKind()) {
|
||||
case loc::MemRegionKind: {
|
||||
const VarRegion* R =
|
||||
dyn_cast<VarRegion>(cast<loc::MemRegionVal>(LV).getRegion());
|
||||
dyn_cast<VarRegion>(cast<loc::MemRegionVal>(loc).getRegion());
|
||||
|
||||
if (!R)
|
||||
return store;
|
||||
|
@ -324,11 +324,11 @@ Store BasicStoreManager::BindInternal(Store store, Loc LV, SVal V) {
|
|||
}
|
||||
}
|
||||
|
||||
Store BasicStoreManager::Remove(Store store, Loc LV) {
|
||||
switch (LV.getSubKind()) {
|
||||
Store BasicStoreManager::Remove(Store store, Loc loc) {
|
||||
switch (loc.getSubKind()) {
|
||||
case loc::MemRegionKind: {
|
||||
const VarRegion* R =
|
||||
dyn_cast<VarRegion>(cast<loc::MemRegionVal>(LV).getRegion());
|
||||
dyn_cast<VarRegion>(cast<loc::MemRegionVal>(loc).getRegion());
|
||||
|
||||
if (!R)
|
||||
return store;
|
||||
|
@ -379,7 +379,7 @@ BasicStoreManager::RemoveDeadBindings(const GRState* state, Stmt* Loc,
|
|||
break;
|
||||
|
||||
Marked.insert(R);
|
||||
SVal X = GetRegionSVal(state, R);
|
||||
SVal X = Retrieve(state, loc::MemRegionVal(R));
|
||||
|
||||
// FIXME: We need to handle symbols nested in region definitions.
|
||||
for (symbol_iterator SI=X.symbol_begin(), SE=X.symbol_end(); SI!=SE; ++SI)
|
||||
|
|
Loading…
Reference in New Issue