From 365246bd2d9dd9f7eea008b25b8550bba0aac1cc Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Fri, 21 Dec 2018 17:35:08 +0100
Subject: Fixed a bug in the dominators computation.

---
 src/analysis/disass/dragon.c | 10 ----------
 src/analysis/disass/loop.c   | 13 +------------
 2 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/src/analysis/disass/dragon.c b/src/analysis/disass/dragon.c
index 7040b3b..eb91ad1 100644
--- a/src/analysis/disass/dragon.c
+++ b/src/analysis/disass/dragon.c
@@ -576,14 +576,6 @@ void compute_all_dominators(dragon_node *nodes, size_t count)
 
                         predecessor = find_node_for_instruction(nodes, count, true, source->linked);
 
-                        /*
-                        printf("  -- finding pred @ 0x%08x -> 0x%08x :: %p\n",
-                               (unsigned int)g_arch_instruction_get_range(node->first)->addr.virtual,
-                               (unsigned int)g_arch_instruction_get_range(srcs[i])->addr.virtual,
-                               predecessor);
-                        */
-
-
                         if (predecessor != NULL)
                             and_bit_field(inter, predecessor->bits);
 
@@ -602,8 +594,6 @@ void compute_all_dominators(dragon_node *nodes, size_t count)
 
             set_in_bit_field(inter, k, 1);
 
-            or_bit_field(inter, node->bits);
-
             if (compare_bit_fields(node->bits, inter) != 0)
             {
                 copy_bit_field(node->bits, inter);
diff --git a/src/analysis/disass/loop.c b/src/analysis/disass/loop.c
index 40ce441..b41e6b2 100644
--- a/src/analysis/disass/loop.c
+++ b/src/analysis/disass/loop.c
@@ -84,18 +84,7 @@ static void detect_back_edges(dragon_node *nodes, size_t count)
                     id = get_dragon_node_index(nodes, target);
 
                     if (test_in_bit_field(dominators, id))
-                    {
-
-                        /*
-                        printf("BACKEDGE :: 0x%08lx -> 0x%08lx\n",
-                               (unsigned int)g_arch_instruction_get_range(last)->addr.virtual,
-                               (unsigned int)g_arch_instruction_get_range(dests[i])->addr.virtual);
-                        */
-
-                        /* status = */g_arch_instruction_change_link(last, dest->linked, dest->type, ILT_LOOP);
-
-
-                    }
+                        g_arch_instruction_change_link(last, dest->linked, dest->type, ILT_LOOP);
 
                     break;
 
-- 
cgit v0.11.2-87-g4458