aboutsummaryrefslogtreecommitdiff
path: root/lib/Checker/RegionStore.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-10-26 00:06:15 +0000
committerTed Kremenek <kremenek@apple.com>2010-10-26 00:06:15 +0000
commitd45d59f4aebfe6399437074ed5391928c73993bb (patch)
tree259d8b4fcd7fb99aee1f044ee50c30ba5664bfdf /lib/Checker/RegionStore.cpp
parent646c3c3beaf71fc64453d766dff22024dd5e0409 (diff)
Move 'includeGlobals' as a field into ClusterAnalysis.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117335 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Checker/RegionStore.cpp')
-rw-r--r--lib/Checker/RegionStore.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/Checker/RegionStore.cpp b/lib/Checker/RegionStore.cpp
index 91f7cfaf6c..95d082ee44 100644
--- a/lib/Checker/RegionStore.cpp
+++ b/lib/Checker/RegionStore.cpp
@@ -456,12 +456,14 @@ protected:
ValueManager &ValMgr;
RegionBindings B;
+
+ const bool includeGlobals;
public:
ClusterAnalysis(RegionStoreManager &rm, GRStateManager &StateMgr,
- RegionBindings b)
+ RegionBindings b, const bool includeGlobals)
: RM(rm), Ctx(StateMgr.getContext()), ValMgr(StateMgr.getValueManager()),
- B(b) {}
+ B(b), includeGlobals(includeGlobals) {}
RegionBindings getRegionBindings() const { return B; }
@@ -487,7 +489,7 @@ public:
return *CRef;
}
- void GenerateClusters(bool includeGlobals = false) {
+ void GenerateClusters() {
// Scan the entire set of bindings and make the region clusters.
for (RegionBindings::iterator RI = B.begin(), RE = B.end(); RI != RE; ++RI){
RegionCluster &C = AddToCluster(RI.getKey());
@@ -574,8 +576,9 @@ public:
RegionBindings b,
const Expr *ex, unsigned count,
StoreManager::InvalidatedSymbols *is,
- StoreManager::InvalidatedRegions *r)
- : ClusterAnalysis<InvalidateRegionsWorker>(rm, stateMgr, b),
+ StoreManager::InvalidatedRegions *r,
+ bool includeGlobals)
+ : ClusterAnalysis<InvalidateRegionsWorker>(rm, stateMgr, b, includeGlobals),
Ex(ex), Count(count), IS(is), Regions(r) {}
void VisitCluster(const MemRegion *baseR, BindingKey *I, BindingKey *E);
@@ -698,10 +701,10 @@ Store RegionStoreManager::InvalidateRegions(Store store,
InvalidatedRegions *Regions) {
InvalidateRegionsWorker W(*this, StateMgr,
RegionStoreManager::GetRegionBindings(store),
- Ex, Count, IS, Regions);
+ Ex, Count, IS, Regions, invalidateGlobals);
// Scan the bindings and generate the clusters.
- W.GenerateClusters(invalidateGlobals);
+ W.GenerateClusters();
// Add I .. E to the worklist.
for ( ; I != E; ++I)
@@ -1612,7 +1615,8 @@ public:
RemoveDeadBindingsWorker(RegionStoreManager &rm, GRStateManager &stateMgr,
RegionBindings b, SymbolReaper &symReaper,
const StackFrameContext *LCtx)
- : ClusterAnalysis<RemoveDeadBindingsWorker>(rm, stateMgr, b),
+ : ClusterAnalysis<RemoveDeadBindingsWorker>(rm, stateMgr, b,
+ /* includeGlobals = */ false),
SymReaper(symReaper), CurrentLCtx(LCtx) {}
// Called by ClusterAnalysis.