/// getSubRegionMap - Returns an opaque map object that clients can query
/// to get the subregions of a given MemRegion object. It is the
// caller's responsibility to 'delete' the returned map.
- virtual SubRegionMap *getSubRegionMap(const GRState *state) = 0;
+ virtual SubRegionMap *getSubRegionMap(Store store) = 0;
virtual SVal getLValueVar(const VarDecl *VD, const LocationContext *LC) = 0;
~BasicStoreManager() {}
- SubRegionMap *getSubRegionMap(const GRState *state) {
+ SubRegionMap *getSubRegionMap(Store store) {
return new BasicStoreSubRegionMap();
}
return RBFactory.GetEmptyMap().getRoot();
}
- SubRegionMap *getSubRegionMap(const GRState *state);
+ SubRegionMap *getSubRegionMap(Store store) {
+ return 0;
+ }
SVal getLValueVar(const VarDecl *VD, const LocationContext *LC);
return store;
}
-
-SubRegionMap *FlatStoreManager::getSubRegionMap(const GRState *state) {
- return 0;
-}
-
SVal FlatStoreManager::getLValueVar(const VarDecl *VD,
const LocationContext *LC) {
return UnknownVal();
// Now look at the subregions.
if (!SRM.get())
- SRM.reset(state->getStateManager().getStoreManager().getSubRegionMap(state));
+ SRM.reset(state->getStateManager().getStoreManager().
+ getSubRegionMap(state->getStore()));
return SRM->iterSubRegions(R, *this);
}
delete (*I).second;
}
- SubRegionMap *getSubRegionMap(const GRState *state);
+ SubRegionMap *getSubRegionMap(Store store) {
+ return getRegionStoreSubRegionMap(store);
+ }
RegionStoreSubRegionMap *getRegionStoreSubRegionMap(Store store);
return M;
}
-SubRegionMap *RegionStoreManager::getSubRegionMap(const GRState *state) {
- return getRegionStoreSubRegionMap(state->getStore());
-}
-
//===----------------------------------------------------------------------===//
// Binding invalidation.
//===----------------------------------------------------------------------===//
-
void RegionStoreManager::RemoveSubRegionBindings(RegionBindings &B,
const MemRegion *R,
RegionStoreSubRegionMap &M) {