diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-08-02 04:45:08 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-08-02 04:45:08 +0000 |
commit | 2f26bc39f3b7bc93b9fdfbb79751b25704e5fdc6 (patch) | |
tree | d9f21675f4d1f4805d13eb0ce1252fff9d18c94e /lib/Analysis/RegionStore.cpp | |
parent | 26fb937145f32221bb8b4e1119b122396c2ac1ce (diff) |
Generalize the interface of 'StoreManager::RemoveDeadBindings()' to manipulate the entire GRState, not just the Store.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77870 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/RegionStore.cpp')
-rw-r--r-- | lib/Analysis/RegionStore.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp index 6ca881d73b..c95f6c86f9 100644 --- a/lib/Analysis/RegionStore.cpp +++ b/lib/Analysis/RegionStore.cpp @@ -347,7 +347,7 @@ public: /// RemoveDeadBindings - Scans the RegionStore of 'state' for dead values. /// It returns a new Store with these values removed. - Store RemoveDeadBindings(const GRState *state, Stmt* Loc, SymbolReaper& SymReaper, + void RemoveDeadBindings(GRState &state, Stmt* Loc, SymbolReaper& SymReaper, llvm::SmallVectorImpl<const MemRegion*>& RegionRoots); //===------------------------------------------------------------------===// @@ -1630,11 +1630,11 @@ static void UpdateLiveSymbols(SVal X, SymbolReaper& SymReaper) { SymReaper.markLive(*SI); } -Store RegionStoreManager::RemoveDeadBindings(const GRState *state, Stmt* Loc, - SymbolReaper& SymReaper, +void RegionStoreManager::RemoveDeadBindings(GRState &state, Stmt* Loc, + SymbolReaper& SymReaper, llvm::SmallVectorImpl<const MemRegion*>& RegionRoots) { - Store store = state->getStore(); + Store store = state.getStore(); RegionBindingsTy B = GetRegionBindings(store); // Lazily constructed backmap from MemRegions to SubRegions. @@ -1643,7 +1643,7 @@ Store RegionStoreManager::RemoveDeadBindings(const GRState *state, Stmt* Loc, // The backmap from regions to subregions. llvm::OwningPtr<RegionStoreSubRegionMap> - SubRegions(getRegionStoreSubRegionMap(state)); + SubRegions(getRegionStoreSubRegionMap(&state)); // Do a pass over the regions in the store. For VarRegions we check if // the variable is still live and if so add it to the list of live roots. @@ -1657,7 +1657,7 @@ Store RegionStoreManager::RemoveDeadBindings(const GRState *state, Stmt* Loc, } // Scan the default bindings for "intermediate" roots. - RegionDefaultValue::MapTy DVM = state->get<RegionDefaultValue>(); + RegionDefaultValue::MapTy DVM = state.get<RegionDefaultValue>(); for (RegionDefaultValue::MapTy::iterator I = DVM.begin(), E = DVM.end(); I != E; ++I) { const MemRegion *R = I.getKey(); @@ -1765,7 +1765,8 @@ Store RegionStoreManager::RemoveDeadBindings(const GRState *state, Stmt* Loc, // FIXME: remove default bindings as well. - return store; + // Write the store back. + state.setStore(store); } //===----------------------------------------------------------------------===// |