From: Tobias Grosser Date: Thu, 8 May 2014 07:12:44 +0000 (+0000) Subject: SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=96f8c5651c0128c3b893526da59f651fab37cf2b;p=oota-llvm.git SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208282 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index 148e58d548f..8f5a2a98cc1 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -7223,12 +7223,9 @@ static void findArrayDimensionsRec(ScalarEvolution &SE, Terms[I] = Q; } - // Remove all SCEVConstants. - for (unsigned I = 0; I < Terms.size();) - if (isa(Terms[I])) - Terms.erase(Terms.begin() + I); - else - ++I; + for (auto I = Terms.begin(), E = Terms.end(); I != E; I++) + if (isa(*I)) + I = Terms.erase(I); if (Terms.size() > 0) findArrayDimensionsRec(SE, Terms, Sizes, Zero, One);