From 2c64130c4320b2bb53db71f737faadd0cc493cd3 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sun, 16 Aug 2009 11:56:42 +0000 Subject: [PATCH] Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used after erasure. llvm-svn: 79189 --- llvm/lib/Target/ARM/Thumb2SizeReduction.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp b/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp index b3ed8e84f920..e6f45bb5ca9d 100644 --- a/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp +++ b/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp @@ -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: