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
diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp
index 85d96c4..31408c0 100644
--- a/lib/Analysis/BasicStore.cpp
+++ b/lib/Analysis/BasicStore.cpp
@@ -23,6 +23,15 @@
 
 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 @@
   
   ~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) {