diff --git a/src/analysis/tracker.rs b/src/analysis/tracker.rs index 9f381ac..54338f4 100644 --- a/src/analysis/tracker.rs +++ b/src/analysis/tracker.rs @@ -269,7 +269,8 @@ impl Tracker { possible_missed_branches: &mut BTreeMap>, ) -> Result> { let ExecCbData { executor, vm, result, ins_addr, section: _, ins, block_start: _ } = data; - let is_function_addr = |addr: SectionAddress| addr >= function_start && addr < function_end; + // Using > instead of >= to treat a branch to the beginning of the function as a tail call + let is_function_addr = |addr: SectionAddress| addr > function_start && addr < function_end; let _span = debug_span!("ins", addr = %ins_addr, op = ?ins.op).entered(); match result {