diff options
| author | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-10-24 01:38:55 +0000 |
|---|---|---|
| committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-10-24 01:38:55 +0000 |
| commit | cebb741f68685cf74356f258591722fcc7ae4fe9 (patch) | |
| tree | 375d2dbbb324bbf7be724df032e381852a87be91 | |
| parent | 886b5193a727cfed59c1b7695696e3af20bd1238 (diff) | |
| download | bcm5719-llvm-cebb741f68685cf74356f258591722fcc7ae4fe9.tar.gz bcm5719-llvm-cebb741f68685cf74356f258591722fcc7ae4fe9.zip | |
Add a bunch of dummy methods to make RegionStoreManager non-virtual.
llvm-svn: 58061
| -rw-r--r-- | clang/lib/Analysis/RegionStore.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/clang/lib/Analysis/RegionStore.cpp b/clang/lib/Analysis/RegionStore.cpp index f64ed76be72..05cd46e1f90 100644 --- a/clang/lib/Analysis/RegionStore.cpp +++ b/clang/lib/Analysis/RegionStore.cpp @@ -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) { |

