aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2008-01-27 18:35:00 +0000
committerNick Lewycky <nicholas@mxc.ca>2008-01-27 18:35:00 +0000
commitf8104c5132b84dfad0591ad78a6cdf8fb01e0519 (patch)
treecd02425f94b429186dcc75f361f4e60eeb963d90 /lib
parent96ad126b9f710e43d48a08f416490c3e1c07d6fd (diff)
downloadexternal_llvm-f8104c5132b84dfad0591ad78a6cdf8fb01e0519.zip
external_llvm-f8104c5132b84dfad0591ad78a6cdf8fb01e0519.tar.gz
external_llvm-f8104c5132b84dfad0591ad78a6cdf8fb01e0519.tar.bz2
Be more careful modifying the use_list while also iterating through it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46417 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Transforms/Scalar/LoopUnroll.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Transforms/Scalar/LoopUnroll.cpp b/lib/Transforms/Scalar/LoopUnroll.cpp
index ff2168a..b514156 100644
--- a/lib/Transforms/Scalar/LoopUnroll.cpp
+++ b/lib/Transforms/Scalar/LoopUnroll.cpp
@@ -365,8 +365,9 @@ bool LoopUnroll::unrollLoop(Loop *L, unsigned Count, unsigned Threshold) {
// be updated specially after unrolling all the way.
if (*BB != LatchBlock)
for (Value::use_iterator UI = (*BB)->use_begin(), UE = (*BB)->use_end();
- UI != UE; ++UI) {
+ UI != UE;) {
Instruction *UseInst = cast<Instruction>(*UI);
+ ++UI;
if (isa<PHINode>(UseInst) && !L->contains(UseInst->getParent())) {
PHINode *phi = cast<PHINode>(UseInst);
Value *Incoming = phi->getIncomingValueForBlock(*BB);