[cfe-commits] r96060 - /cfe/trunk/lib/Checker/RegionStore.cpp
Ted Kremenek
kremenek at apple.com
Fri Feb 12 16:54:03 PST 2010
Author: kremenek
Date: Fri Feb 12 18:54:03 2010
New Revision: 96060
URL: http://llvm.org/viewvc/llvm-project?rev=96060&view=rev
Log:
Pull logic for visiting value bindings in InvalidateRegionsWorker into a separate method.
No functionality change.
Modified:
cfe/trunk/lib/Checker/RegionStore.cpp
Modified: cfe/trunk/lib/Checker/RegionStore.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/RegionStore.cpp?rev=96060&r1=96059&r2=96060&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/RegionStore.cpp (original)
+++ cfe/trunk/lib/Checker/RegionStore.cpp Fri Feb 12 18:54:03 2010
@@ -473,19 +473,27 @@
BumpVectorContext BVC;
ClusterMap ClusterM;
- WorkList WL;
+ WorkList WL;
+
+ StoreManager::InvalidatedSymbols *IS;
+ ASTContext &Ctx;
+ ValueManager &ValMgr;
+
public:
+ InvalidateRegionsWorker(StoreManager::InvalidatedSymbols *is,
+ ASTContext &ctx, ValueManager &valMgr)
+ : IS(is), Ctx(ctx), ValMgr(valMgr) {}
+
Store InvalidateRegions(RegionStoreManager &RM, Store store,
const MemRegion * const *I,const MemRegion * const *E,
- const Expr *Ex, unsigned Count,
- StoreManager::InvalidatedSymbols *IS,
- ASTContext &Ctx, ValueManager &ValMgr);
+ const Expr *Ex, unsigned Count);
private:
void AddToWorkList(BindingKey K);
void AddToWorkList(const MemRegion *R);
void AddToCluster(BindingKey K);
RegionCluster **getCluster(const MemRegion *R);
+ void VisitBinding(SVal V);
};
}
@@ -520,14 +528,22 @@
return &CRef;
}
+void InvalidateRegionsWorker::VisitBinding(SVal V) {
+ if (const MemRegion *R = V.getAsRegion())
+ AddToWorkList(R);
+
+ // A symbol? Mark it touched by the invalidation.
+ if (IS)
+ if (SymbolRef Sym = V.getAsSymbol())
+ IS->insert(Sym);
+}
+
Store InvalidateRegionsWorker::InvalidateRegions(RegionStoreManager &RM,
Store store,
const MemRegion * const *I,
const MemRegion * const *E,
- const Expr *Ex, unsigned Count,
- StoreManager::InvalidatedSymbols *IS,
- ASTContext &Ctx,
- ValueManager &ValMgr) {
+ const Expr *Ex, unsigned Count)
+{
RegionBindings B = RegionStoreManager::GetRegionBindings(store);
// Scan the entire store and make the region clusters.
@@ -554,15 +570,8 @@
BindingKey K = *I;
// Get the old binding. Is it a region? If so, add it to the worklist.
- if (const SVal *V = RM.Lookup(B, K)) {
- if (const MemRegion *R = V->getAsRegion())
- AddToWorkList(R);
-
- // A symbol? Mark it touched by the invalidation.
- if (IS)
- if (SymbolRef Sym = V->getAsSymbol())
- IS->insert(Sym);
- }
+ if (const SVal *V = RM.Lookup(B, K))
+ VisitBinding(*V);
B = RM.Remove(B, K);
}
@@ -643,9 +652,8 @@
const MemRegion * const *E,
const Expr *Ex, unsigned Count,
InvalidatedSymbols *IS) {
- InvalidateRegionsWorker W;
- return W.InvalidateRegions(*this, store, I, E, Ex, Count, IS, getContext(),
- StateMgr.getValueManager());
+ InvalidateRegionsWorker W(IS, getContext(), StateMgr.getValueManager());
+ return W.InvalidateRegions(*this, store, I, E, Ex, Count);
}
//===----------------------------------------------------------------------===//
More information about the cfe-commits
mailing list