summaryrefslogtreecommitdiff
path: root/src/analysis/disass/macro.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/disass/macro.c')
-rw-r--r--src/analysis/disass/macro.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/analysis/disass/macro.c b/src/analysis/disass/macro.c
index 9527457..b478c74 100644
--- a/src/analysis/disass/macro.c
+++ b/src/analysis/disass/macro.c
@@ -1276,8 +1276,13 @@ static GInstrBlock *build_instruction_blocks(GArchInstruction *instrs, code_cove
}
DELAYED_BLOCK_ADDING(result, result_cached, block);
- range = g_arch_instruction_get_range(iter);
- compute_mrange_end_addr(range, &next_addr);
+ /**
+ * La prochaine adresse d'analyse est celle visée par l'instruction !
+ * Pour les sauts naturels, ça ne change rien ; ce n'est pas le cas
+ * pour les sauts explicites.
+ */
+ range = g_arch_instruction_get_range(dests[i]);
+ copy_vmpa(&next_addr, get_mrange_addr(range));
first = NULL;