revert my patch, duncan points out what is wrong with my logic. Add

a comment so that I don't change this in the future :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80760 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-09-02 04:39:04 +00:00
parent b8bcbd61a8
commit d3bd0821b0

View File

@ -177,12 +177,16 @@ void CGPassManager::RefreshCallGraph(std::vector<CallGraphNode*> &CurSCC,
assert(!CheckingMode &&
"CallGraphSCCPass did not update the CallGraph correctly!");
// Just remove the edge from the set of callees.
// Just remove the edge from the set of callees, keep track of whether
// I points to the last element of the vector.
bool WasLast = I + 1 == E;
CGN->removeCallEdge(I);
// If we removed the last edge, get out of the loop.
if (CGN->empty()) break;
// If I pointed to the last element of the vector, we have to bail out:
// iterator checking rejects comparisons of the resultant pointer with
// end.
if (WasLast)
break;
E = CGN->end();
continue;
}