Use llvm::next() instead of incrementing begin iterators of std::vector.
authorMichael Gottesman <mgottesman@apple.com>
Wed, 4 Sep 2013 04:19:01 +0000 (04:19 +0000)
committerMichael Gottesman <mgottesman@apple.com>
Wed, 4 Sep 2013 04:19:01 +0000 (04:19 +0000)
Iterator of std::vector may be implemented as a raw pointer. In
this case begin iterators are rvalues and cannot be incremented.
For example, this is the case with STDCXX implementation of vector.

Patch by Konstantin Tokarev <annulen@yandex.ru>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189911 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/AMDILCFGStructurizer.cpp

index 687eadb9e853b22e5353eb77c4d3a97da5b19ee1..481b5a700e8cfcc087ca211bb4ef67025e764c70 100644 (file)
@@ -1233,7 +1233,7 @@ int AMDGPUCFGStructurizer::handleJumpintoIfImp(MachineBasicBlock *HeadMBB,
 
       numClonedBlock += Num;
       Num += serialPatternMatch(*HeadMBB->succ_begin());
-      Num += serialPatternMatch(*(++HeadMBB->succ_begin()));
+      Num += serialPatternMatch(*next(HeadMBB->succ_begin()));
       Num += ifPatternMatch(HeadMBB);
       assert(Num > 0);
 
@@ -1713,7 +1713,7 @@ void AMDGPUCFGStructurizer::removeRedundantConditionalBranch(
   if (MBB->succ_size() != 2)
     return;
   MachineBasicBlock *MBB1 = *MBB->succ_begin();
-  MachineBasicBlock *MBB2 = *(++MBB->succ_begin());
+  MachineBasicBlock *MBB2 = *next(MBB->succ_begin());
   if (MBB1 != MBB2)
     return;