Adjust symbol name matching logic for GCC (#278)

* Adjust symbol name matching logic for GCC

* Turn $ and . into a list

* Fix borrow issue
This commit is contained in:
Dávid Balatoni
2025-11-19 05:55:55 +01:00
committed by GitHub
parent 66da80ff69
commit 67b237eab6

View File

@@ -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