From 12fe017ec07e962b85a90ce4747f21f3bec47695 Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Mon, 30 Nov 2015 00:52:08 +0000
Subject: [PATCH] Updates for dealing with IBs in STARS/irdb

Former-commit-id: 11589cbc99400d4999707776d0190475cdef0867
---
 src/interfaces/irdb/STARS_IRDB_Program.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/interfaces/irdb/STARS_IRDB_Program.cpp b/src/interfaces/irdb/STARS_IRDB_Program.cpp
index f79e98c3..738cd067 100644
--- a/src/interfaces/irdb/STARS_IRDB_Program.cpp
+++ b/src/interfaces/irdb/STARS_IRDB_Program.cpp
@@ -304,6 +304,19 @@ void STARS_IRDB_Program_t::GetBlockSuccessorTargets
 		SuccList.push_back(STARS_InstructionID_t(irdb_insn->GetFallthrough()->GetBaseID()));
 	if(irdb_insn->GetTarget())
 		SuccList.push_back(STARS_InstructionID_t(irdb_insn->GetTarget()->GetBaseID()));
+
+	// if no IBTs or the analysis failed.
+	if(!irdb_insn->GetIBTargets() || !irdb_insn->GetIBTargets()->IsComplete())
+		// don't include any
+		return;
+
+	for(libIRDB::InstructionSet_t::iterator it=irdb_insn->GetIBTargets()->begin(); 
+		it!=irdb_insn->GetIBTargets()->end(); ++it)
+	{
+		libIRDB::Instruction_t* target=*it;
+		assert(target);
+		SuccList.push_back(STARS_InstructionID_t(target->GetBaseID()));
+	}
 	
 	return;
 }
-- 
GitLab