Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used after...
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 16 Aug 2009 11:56:42 +0000 (11:56 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 16 Aug 2009 11:56:42 +0000 (11:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79189 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Thumb2SizeReduction.cpp

index b3ed8e84f920cfa5072a91965c25ee25b2738ab7..e6f45bb5ca9d1ee092af3fad1a97e0195eef8d98 100644 (file)
@@ -654,8 +654,11 @@ bool Thumb2SizeReduce::ReduceMBB(MachineBasicBlock &MBB) {
       }
 
       // Try to transform ro a 16-bit non-two-address instruction.
-      if (Entry.NarrowOpc1 && ReduceToNarrow(MBB, MI, Entry, LiveCPSR))
+      if (Entry.NarrowOpc1 && ReduceToNarrow(MBB, MI, Entry, LiveCPSR)) {
         Modified = true;
+        MachineBasicBlock::iterator I = prior(NextMII);
+        MI = &*I;
+      }
     }
 
   ProcessNext: