[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