diff --git a/lib/Analysis/DataStructure/EliminateNodes.cpp b/lib/Analysis/DataStructure/EliminateNodes.cpp index ca82ed1cd92..39fdd2c5b29 100644 --- a/lib/Analysis/DataStructure/EliminateNodes.cpp +++ b/lib/Analysis/DataStructure/EliminateNodes.cpp @@ -152,7 +152,7 @@ static inline void MarkReferredNodeSetReachable(const PointerValSet &PVS, vector &AllocNodes, vector &ReachableAllocNodes) { for (unsigned i = 0, e = PVS.size(); i != e; ++i) - if (isa(PVS[i].Node) || isa(PVS[i].Node)) + if (isa(PVS[i].Node) || isa(PVS[i].Node)) MarkReferredNodesReachable(PVS[i].Node, ShadowNodes, ReachableShadowNodes, AllocNodes, ReachableAllocNodes); } @@ -194,6 +194,7 @@ static void MarkReferredNodesReachable(DSNode *N, bool FunctionDSGraph::RemoveUnreachableShadowNodes() { bool Changed = false; + while (1) { // Reachable*Nodes - Contains true if there is an edge from a reachable // node to the numbered node...