diff options
author | David Greene <greened@obbligato.org> | 2007-12-17 17:39:51 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2007-12-17 17:39:51 +0000 |
commit | 08d5fd9099d1106eb296c504ea40375a031e0eb0 (patch) | |
tree | 83c5bd1f2f66ad9c6d75e3db9a9fa14724549279 | |
parent | 0a1f248f28c8f61d535e796344d6f988c3107615 (diff) | |
download | external_llvm-08d5fd9099d1106eb296c504ea40375a031e0eb0.zip external_llvm-08d5fd9099d1106eb296c504ea40375a031e0eb0.tar.gz external_llvm-08d5fd9099d1106eb296c504ea40375a031e0eb0.tar.bz2 |
Fix GLIBCXX_DEBUG errors. Erase invalidates std::vector iterators
passed the erased element.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45099 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/DCE.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Transforms/Scalar/DCE.cpp b/lib/Transforms/Scalar/DCE.cpp index 163c2b0..9cad236 100644 --- a/lib/Transforms/Scalar/DCE.cpp +++ b/lib/Transforms/Scalar/DCE.cpp @@ -109,11 +109,10 @@ bool DCE::runOnFunction(Function &F) { 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; } |