mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
Fix a nasty iterator invalidation problem I introduced yesterday. This
unfortunately is the cause of a bunch of failures from tonight, and the reason the tester is running so slow :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16407 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a744b77e11
commit
fff03c9074
@ -211,10 +211,10 @@ void CallGraphNode::removeCallEdgeTo(CallGraphNode *Callee) {
|
||||
// the specified callee function. This takes more time to execute than
|
||||
// removeCallEdgeTo, so it should not be used unless necessary.
|
||||
void CallGraphNode::removeAnyCallEdgeTo(CallGraphNode *Callee) {
|
||||
for (std::vector<CallGraphNode*>::iterator I = CalledFunctions.begin(),
|
||||
E = CalledFunctions.end(); I != E; ++I)
|
||||
if (*I == Callee) {
|
||||
CalledFunctions.erase(I);
|
||||
E = CalledFunctions.end();
|
||||
for (unsigned i = 0, e = CalledFunctions.size(); i != e; ++i)
|
||||
if (CalledFunctions[i] == Callee) {
|
||||
CalledFunctions[i] = CalledFunctions.back();
|
||||
CalledFunctions.pop_back();
|
||||
--i; --e;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user