OSDN Git Service

Use std::remove_if to remove elements from a vector
authorTobias Grosser <tobias@grosser.es>
Thu, 8 May 2014 21:32:59 +0000 (21:32 +0000)
committerTobias Grosser <tobias@grosser.es>
Thu, 8 May 2014 21:32:59 +0000 (21:32 +0000)
Suggested-by: Benjamin Kramer <benny.kra@gmail.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208357 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ScalarEvolution.cpp

index 148e58d..2c28c50 100644 (file)
@@ -7224,11 +7224,10 @@ static void findArrayDimensionsRec(ScalarEvolution &SE,
   }
 
   // Remove all SCEVConstants.
-  for (unsigned I = 0; I < Terms.size();)
-    if (isa<SCEVConstant>(Terms[I]))
-      Terms.erase(Terms.begin() + I);
-    else
-      ++I;
+  Terms.erase(
+        std::remove_if(Terms.begin(), Terms.end(),
+                       [](const SCEV *E) { return isa<SCEVConstant>(E);}),
+            Terms.end());
 
   if (Terms.size() > 0)
     findArrayDimensionsRec(SE, Terms, Sizes, Zero, One);