diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-03-03 01:35:36 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-03-03 01:35:36 +0000 |
commit | 59e8f1128019aef95f45c6fa09cc0f8bfea99f13 (patch) | |
tree | d0bee9017b232d51c86f3bf7a58c1417afbc2ea0 /lib/Analysis/BasicStore.cpp | |
parent | 935fd768f95edc21f03c6c61f8b48ee99ff8bab6 (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.cpp | 13 |
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) { |