diff options
-rw-r--r-- | lib/Analysis/DataStructure/TopDownClosure.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Analysis/DataStructure/TopDownClosure.cpp b/lib/Analysis/DataStructure/TopDownClosure.cpp index 01dec2978d..67ea400dce 100644 --- a/lib/Analysis/DataStructure/TopDownClosure.cpp +++ b/lib/Analysis/DataStructure/TopDownClosure.cpp @@ -62,10 +62,9 @@ bool TDDataStructures::run(Module &M) { // globals graph. const DSGraph::ScalarMapTy &GGSM = GlobalsGraph->getScalarMap(); hash_set<DSNode*> Visited; - for (DSGraph::ScalarMapTy::const_iterator I = GGSM.begin(), E = GGSM.end(); + for (DSScalarMap::global_iterator I = GGSM.global_begin(), E = GGSM.global_end(); I != E; ++I) - if (isa<GlobalValue>(I->first)) - markReachableFunctionsExternallyAccessible(I->second.getNode(), Visited); + markReachableFunctionsExternallyAccessible(GGSM.find(*I)->second.getNode(), Visited); // Loop over unresolved call nodes. Any functions passed into (but not // returned!) from unresolvable call nodes may be invoked outside of the |