summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2014-05-08 07:55:34 +0000
committerTobias Grosser <tobias@grosser.es>2014-05-08 07:55:34 +0000
commit3080cf16a5d1126a4a750b24840d7876302c79fe (patch)
treead2691b592bd00d1e41b2b37c4502f0d28482530 /llvm/lib/Analysis/ScalarEvolution.cpp
parentf7405c129e4ffb01b7817e8b2b2da60c4f7efcce (diff)
downloadbcm5719-llvm-3080cf16a5d1126a4a750b24840d7876302c79fe.tar.gz
bcm5719-llvm-3080cf16a5d1126a4a750b24840d7876302c79fe.zip
Revert "SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time"
as committed in r208282. The original commit was incorrect. llvm-svn: 208286
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp')
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 8f5a2a98cc1..148e58d548f 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -7223,9 +7223,12 @@ static void findArrayDimensionsRec(ScalarEvolution &SE,
Terms[I] = Q;
}
- for (auto I = Terms.begin(), E = Terms.end(); I != E; I++)
- if (isa<SCEVConstant>(*I))
- I = Terms.erase(I);
+ // Remove all SCEVConstants.
+ for (unsigned I = 0; I < Terms.size();)
+ if (isa<SCEVConstant>(Terms[I]))
+ Terms.erase(Terms.begin() + I);
+ else
+ ++I;
if (Terms.size() > 0)
findArrayDimensionsRec(SE, Terms, Sizes, Zero, One);
OpenPOWER on IntegriCloud