diff --git a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp index d9d7763eda27..309e3ba2ac25 100644 --- a/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -933,13 +933,14 @@ static inline unsigned getUnconditionalBrDisp(int Opc) { /// MachineBasicBlock *ARMConstantIslands::AcceptWater(water_iterator IP) { DEBUG(errs() << "found water in range\n"); + MachineBasicBlock *WaterBB = *IP; // Remove the original WaterList entry; we want subsequent // insertions in this vicinity to go after the one we're // about to insert. This considerably reduces the number // of times we have to move the same CPE more than once. WaterList.erase(IP); // CPE goes before following block (NewMBB). - return next(MachineFunction::iterator(*IP)); + return next(MachineFunction::iterator(WaterBB)); } /// LookForWater - look for an existing entry in the WaterList in which