[llvm] r208286 - Revert "SCEV: Use I = vector<>.erase(I) to iterate	and delete at the same time"
    Tobias Grosser 
    tobias at grosser.es
       
    Thu May  8 00:55:35 PDT 2014
    
    
  
Author: grosser
Date: Thu May  8 02:55:34 2014
New Revision: 208286
URL: http://llvm.org/viewvc/llvm-project?rev=208286&view=rev
Log:
Revert "SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time"
as committed in r208282. The original commit was incorrect.
Modified:
    llvm/trunk/lib/Analysis/ScalarEvolution.cpp
Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=208286&r1=208285&r2=208286&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
+++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Thu May  8 02:55:34 2014
@@ -7223,9 +7223,12 @@ static void findArrayDimensionsRec(Scala
     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);
    
    
More information about the llvm-commits
mailing list