From 67b237eab6133f4e22cebc165f10842c469972fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Balatoni?= <40299962+dbalatoni13@users.noreply.github.com> Date: Wed, 19 Nov 2025 05:55:55 +0100 Subject: [PATCH] Adjust symbol name matching logic for GCC (#278) * Adjust symbol name matching logic for GCC * Turn $ and . into a list * Fix borrow issue --- objdiff-core/src/diff/data.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/objdiff-core/src/diff/data.rs b/objdiff-core/src/diff/data.rs index 17bf1e8..6842c90 100644 --- a/objdiff-core/src/diff/data.rs +++ b/objdiff-core/src/diff/data.rs @@ -37,12 +37,13 @@ pub fn diff_bss_symbol( pub fn symbol_name_matches(left_name: &str, right_name: &str) -> bool { // Match Metrowerks symbol$1234 against symbol$2345 - if let Some((prefix, suffix)) = left_name.split_once('$') { + // and GCC symbol.1234 against symbol.2345 + if let Some((prefix, suffix)) = left_name.split_once(['$', '.']) { if !suffix.chars().all(char::is_numeric) { return false; } right_name - .split_once('$') + .split_once(['$', '.']) .is_some_and(|(p, s)| p == prefix && s.chars().all(char::is_numeric)) } else { left_name == right_name