From 92942735cb52b1f23f22ce4c06c9c8b4c35406a7 Mon Sep 17 00:00:00 2001
From: clc5q <clc5q@git.zephyr-software.com>
Date: Tue, 8 Apr 2008 21:32:22 +0000
Subject: [PATCH] Remove instructions when removing unreachable blocks.

---
 SMPFunction.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/SMPFunction.cpp b/SMPFunction.cpp
index e6d0a1bb..4212f05c 100644
--- a/SMPFunction.cpp
+++ b/SMPFunction.cpp
@@ -1423,6 +1423,11 @@ void SMPFunction::SetLinks(void) {
 					for (SuccIter = CurrBlock->GetFirstSucc(); SuccIter != CurrBlock->GetLastSucc(); ++SuccIter) {
 						(*SuccIter)->ErasePred(TempAddr);
 					}
+					// Remove the unreachable instructions from the function inst list.
+					list<list<SMPInstr>::iterator>::iterator InstIter;
+					for (InstIter = CurrBlock->GetFirstInstr(); InstIter != CurrBlock->GetLastInstr(); ++InstIter) {
+						list<SMPInstr>::iterator DummyIter = this->Instrs.erase(*InstIter);
+					}
 					// Finally, remove the block from the blocks list.
 					CurrBlock = this->Blocks.erase(CurrBlock);
 					this->BlockCount -= 1;
-- 
GitLab