Index: llvm/trunk/lib/CodeGen/MachineOutliner.cpp =================================================================== --- llvm/trunk/lib/CodeGen/MachineOutliner.cpp +++ llvm/trunk/lib/CodeGen/MachineOutliner.cpp @@ -1309,7 +1309,7 @@ // First inst in outlined range <-- Anything that's defined in this // ... .. range has to be added as an implicit // Last inst in outlined range <-- def to the call instruction. - std::for_each(CallInst, EndIt, CopyDefs); + std::for_each(CallInst, std::next(EndIt), CopyDefs); } // Erase from the point after where the call was inserted up to, and Index: llvm/trunk/test/CodeGen/X86/machine-outliner-disubprogram.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/machine-outliner-disubprogram.ll +++ llvm/trunk/test/CodeGen/X86/machine-outliner-disubprogram.ll @@ -2,7 +2,7 @@ ; that we correctly emit DISubprograms for those functions. ; Also make sure that the DISubprograms reference the generated unit. ; make sure that if there are two outlined functions in the program, -; RUN: llc %s -enable-machine-outliner -mtriple=x86_64-apple-darwin -o /dev/null -print-after=machine-outliner +; RUN: llc %s -verify-machineinstrs -enable-machine-outliner -mtriple=x86_64-apple-darwin -o /dev/null -print-after=machine-outliner define void @f6() #0 !dbg !8 { entry: %dog = alloca i32, align 4