]> granicus.if.org Git - clang/commitdiff
Add a bunch of dummy methods to make RegionStoreManager non-virtual.
authorZhongxing Xu <xuzhongxing@gmail.com>
Fri, 24 Oct 2008 01:38:55 +0000 (01:38 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Fri, 24 Oct 2008 01:38:55 +0000 (01:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58061 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/RegionStore.cpp

index f64ed76be7221b4c486021ce911e5676fe9d025f..05cd46e1f90ed941f2a561feca10767966effe5b 100644 (file)
@@ -38,6 +38,13 @@ public:
 
   virtual ~RegionStoreManager() {}
 
+  MemRegionManager& getRegionManager() { return MRMgr; }
+
+  // FIXME: Is this function necessary?
+  SVal GetRegionSVal(Store St, const MemRegion* R) {
+    return Retrieve(St, loc::MemRegionVal(R));
+  }
+
   SVal getLValueVar(const GRState* St, const VarDecl* VD);
   
   SVal getLValueIvar(const GRState* St, const ObjCIvarDecl* D, SVal Base);
@@ -48,12 +55,24 @@ public:
 
   SVal ArrayToPointer(SVal Array);
 
-  SVal Retrieve(Store S, Loc L, QualType T);
+  SVal Retrieve(Store S, Loc L, QualType T = QualType());
 
   Store Bind(Store St, Loc LV, SVal V);
 
+  Store Remove(Store store, Loc LV) {
+    // FIXME: Implement.
+    return store;
+  }
+
   Store getInitialStore();
 
+  Store RemoveDeadBindings(Store store, Stmt* Loc, const LiveVariables& Live,
+                           llvm::SmallVectorImpl<const MemRegion*>& RegionRoots,
+                           LiveSymbolsTy& LSymbols, DeadSymbolsTy& DSymbols) {
+    // FIXME: Implement this.
+    return store;
+  }
+
   Store AddDecl(Store store, const VarDecl* VD, Expr* Ex, SVal InitVal, 
                 unsigned Count);
 
@@ -66,13 +85,20 @@ public:
   static inline RegionBindingsTy GetRegionBindings(Store store) {
    return RegionBindingsTy(static_cast<const RegionBindingsTy::TreeTy*>(store));
   }
+
+  void print(Store store, std::ostream& Out, const char* nl, const char *sep) {
+    // FIXME: Implement.
+  }
+
+  void iterBindings(Store store, BindingsHandler& f) {
+    // FIXME: Implement.
+  }
 };
 
 } // end anonymous namespace
 
 StoreManager* clang::CreateRegionStoreManager(GRStateManager& StMgr) {
-  // return new RegionStoreManager(StMgr);
-  return 0; // Uncomment the above line when RegionStoreManager is not abstract.
+  return new RegionStoreManager(StMgr);
 }
 
 Loc RegionStoreManager::getElementLoc(const VarDecl* VD, SVal Idx) {