Changes in directory llvm/lib/Transforms/Utils:
LoopSimplify.cpp updated: 1.105 -> 1.106 --- Log message: Fix reference to iterator invalidated by an erase operation. Uncovered by _GLIBCXX_DEBUG. --- Diffs of the changes: (+4 -3) LoopSimplify.cpp | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) Index: llvm/lib/Transforms/Utils/LoopSimplify.cpp diff -u llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.105 llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.106 --- llvm/lib/Transforms/Utils/LoopSimplify.cpp:1.105 Thu Jun 21 12:23:45 2007 +++ llvm/lib/Transforms/Utils/LoopSimplify.cpp Thu Jun 28 21:53:16 2007 @@ -564,11 +564,12 @@ // Scan all of the loop children of L, moving them to OuterLoop if they are // not part of the inner loop. - for (Loop::iterator I = L->begin(); I != L->end(); ) - if (BlocksInL.count((*I)->getHeader())) + const std::vector<Loop*> &SubLoops = L->getSubLoops(); + for (size_t I = 0; I != SubLoops.size(); ) + if (BlocksInL.count(SubLoops[I]->getHeader())) ++I; // Loop remains in L else - NewOuter->addChildLoop(L->removeChildLoop(I)); + NewOuter->addChildLoop(L->removeChildLoop(SubLoops.begin() + I)); // Now that we know which blocks are in L and which need to be moved to // OuterLoop, move any blocks that need it. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits