Author: greened Date: Mon Dec 17 11:39:51 2007 New Revision: 45099 URL: http://llvm.org/viewvc/llvm-project?rev=45099&view=rev Log: Fix GLIBCXX_DEBUG errors. Erase invalidates std::vector iterators passed the erased element.
Modified: llvm/trunk/lib/Transforms/Scalar/DCE.cpp Modified: llvm/trunk/lib/Transforms/Scalar/DCE.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/DCE.cpp?rev=45099&r1=45098&r2=45099&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/DCE.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/DCE.cpp Mon Dec 17 11:39:51 2007 @@ -109,11 +109,10 @@ I->eraseFromParent(); // Remove the instruction from the worklist if it still exists in it. - for (std::vector<Instruction*>::iterator WI = WorkList.begin(), - E = WorkList.end(); WI != E; ++WI) + for (std::vector<Instruction*>::iterator WI = WorkList.begin(); + WI != WorkList.end(); ++WI) if (*WI == I) { - WorkList.erase(WI); - --E; + WI = WorkList.erase(WI); --WI; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits