Fix PR3845: Avoid stale MachineInstruction pointer reference.
authorEvan Cheng <evan.cheng@apple.com>
Tue, 24 Mar 2009 20:33:17 +0000 (20:33 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 24 Mar 2009 20:33:17 +0000 (20:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67649 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/PrologEpilogInserter.cpp

index 322c28bd4ddbfc0dc20a3f918d5e4374440eece6..564f9a494436361cda451daacd31214c033c94b4 100644 (file)
@@ -513,8 +513,6 @@ void PEI::replaceFrameIndices(MachineFunction &Fn) {
     int SPAdj = 0;  // SP offset due to call frame setup / destroy.
     if (RS) RS->enterBasicBlock(BB);
     for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) {
-      MachineInstr *MI = I;
-
       if (I->getOpcode() == TargetInstrInfo::DECLARE) {
         // Ignore it.
         ++I;
@@ -545,8 +543,8 @@ void PEI::replaceFrameIndices(MachineFunction &Fn) {
         continue;
       }
 
+      MachineInstr *MI = I;
       bool DoIncr = true;
-
       for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i)
         if (MI->getOperand(i).isFI()) {
           // Some instructions (e.g. inline asm instructions) can have