aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/RegionStore.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2008-10-24 01:38:55 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2008-10-24 01:38:55 +0000
commit24194ef08ef3816d63686e2cac6d42795a015c68 (patch)
tree2a3633703296c4738b89f1a99f40e4c47b434027 /lib/Analysis/RegionStore.cpp
parent4f4b63cd36c53889841c81a8b329f8329398a083 (diff)
Add a bunch of dummy methods to make RegionStoreManager non-virtual.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58061 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/RegionStore.cpp')
-rw-r--r--lib/Analysis/RegionStore.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp
index f64ed76be7..05cd46e1f9 100644
--- a/lib/Analysis/RegionStore.cpp
+++ b/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) {