diff options
Diffstat (limited to 'lib/Analysis/DataStructure/EliminateNodes.cpp')
-rw-r--r-- | lib/Analysis/DataStructure/EliminateNodes.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Analysis/DataStructure/EliminateNodes.cpp b/lib/Analysis/DataStructure/EliminateNodes.cpp index ca82ed1cd9..39fdd2c5b2 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<AllocDSNode*> &AllocNodes, vector<bool> &ReachableAllocNodes) { for (unsigned i = 0, e = PVS.size(); i != e; ++i) - if (isa<ShadowDSNode>(PVS[i].Node) || isa<ShadowDSNode>(PVS[i].Node)) + if (isa<ShadowDSNode>(PVS[i].Node) || isa<AllocDSNode>(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... |