summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-03-28 13:52:56 +0000
committerTim Northover <tnorthover@apple.com>2014-03-28 13:52:56 +0000
commitbd2cca79b753e9491765a5b930ecd38e7fe76d72 (patch)
tree68e8a5c301b3620cdb6fe7b3d406b52a6e594b16
parentb7de4288bc0b712a7691fe8bf9305d3963363b4f (diff)
downloadllvm-bd2cca79b753e9491765a5b930ecd38e7fe76d72.tar.gz
llvm-bd2cca79b753e9491765a5b930ecd38e7fe76d72.tar.bz2
llvm-bd2cca79b753e9491765a5b930ecd38e7fe76d72.tar.xz
R600: avoid calling std::next on an iterator that might be end()
This was causing my llc to go into an infinite loop on CodeGen/R600/address-space.ll (just triggered recently by some allocator changes). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205005 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/R600/SILowerControlFlow.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Target/R600/SILowerControlFlow.cpp b/lib/Target/R600/SILowerControlFlow.cpp
index 182f28ba77..c2f8696473 100644
--- a/lib/Target/R600/SILowerControlFlow.cpp
+++ b/lib/Target/R600/SILowerControlFlow.cpp
@@ -439,10 +439,10 @@ bool SILowerControlFlowPass::runOnMachineFunction(MachineFunction &MF) {
BI != BE; ++BI) {
MachineBasicBlock &MBB = *BI;
- for (MachineBasicBlock::iterator I = MBB.begin(), Next = std::next(I);
- I != MBB.end(); I = Next) {
-
+ MachineBasicBlock::iterator I, Next;
+ for (I = MBB.begin(); I != MBB.end(); I = Next) {
Next = std::next(I);
+
MachineInstr &MI = *I;
if (TII->isDS(MI.getOpcode())) {
NeedM0 = true;