aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/BasicStore.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-03-03 01:35:36 +0000
committerTed Kremenek <kremenek@apple.com>2009-03-03 01:35:36 +0000
commit59e8f1128019aef95f45c6fa09cc0f8bfea99f13 (patch)
treed0bee9017b232d51c86f3bf7a58c1417afbc2ea0 /lib/Analysis/BasicStore.cpp
parent935fd768f95edc21f03c6c61f8b48ee99ff8bab6 (diff)
Add StoreManager::getSubRegionMap(). This method returns an opaque mapping for clients of StoreManagers from MemRegions to their subregions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65914 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/BasicStore.cpp')
-rw-r--r--lib/Analysis/BasicStore.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp
index 85d96c4780..31408c0244 100644
--- a/lib/Analysis/BasicStore.cpp
+++ b/lib/Analysis/BasicStore.cpp
@@ -23,6 +23,15 @@ typedef llvm::ImmutableMap<const VarDecl*,SVal> VarBindingsTy;
namespace {
+class VISIBILITY_HIDDEN BasicStoreSubRegionMap : public SubRegionMap {
+public:
+ BasicStoreSubRegionMap() {}
+
+ void iterSubRegions(const MemRegion* R, Visitor& V) const {
+ // Do nothing. No subregions.
+ }
+};
+
class VISIBILITY_HIDDEN BasicStoreManager : public StoreManager {
VarBindingsTy::Factory VBFactory;
GRStateManager& StateMgr;
@@ -37,6 +46,10 @@ public:
~BasicStoreManager() {}
+ std::auto_ptr<SubRegionMap> getSubRegionMap(const GRState *state) {
+ return std::auto_ptr<SubRegionMap>(new BasicStoreSubRegionMap());
+ }
+
SVal Retrieve(const GRState *state, Loc loc, QualType T = QualType());
const GRState* Bind(const GRState* St, Loc L, SVal V) {