[llvm-commits] [llvm] r45099 - /llvm/trunk/lib/Transforms/Scalar/DCE.cpp
David Greene
greened at obbligato.org
Mon Dec 17 09:39:51 PST 2007
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;
}
More information about the llvm-commits
mailing list