@@ -13,7 +13,7 @@ use crate::{
13
13
code:: { diff_code, no_diff_code} ,
14
14
data:: {
15
15
diff_bss_section, diff_bss_symbol, diff_data_section, diff_data_symbol,
16
- diff_generic_section, no_diff_bss_section, no_diff_data_section,
16
+ diff_generic_section, no_diff_bss_section, no_diff_data_section, symbol_name_matches ,
17
17
} ,
18
18
} ,
19
19
obj:: { InstructionRef , Object , Relocation , SectionKind , Symbol , SymbolFlag } ,
@@ -753,23 +753,12 @@ fn find_symbol(
753
753
return Some ( symbol_idx) ;
754
754
}
755
755
756
- // Match Metrowerks symbol$1234 against symbol$2345
757
- if let Some ( ( prefix, suffix) ) = in_symbol. name . split_once ( '$' ) {
758
- if !suffix. chars ( ) . all ( char:: is_numeric) {
759
- return None ;
760
- }
761
- if let Some ( ( symbol_idx, _) ) = unmatched_symbols ( obj, used) . find ( |& ( _, symbol) | {
762
- if let Some ( ( p, s) ) = symbol. name . split_once ( '$' ) {
763
- prefix == p
764
- && s. chars ( ) . all ( char:: is_numeric)
765
- && symbol_section_kind ( obj, symbol) == section_kind
766
- && symbol_section_name ( obj, symbol) == Some ( section_name)
767
- } else {
768
- false
769
- }
770
- } ) {
771
- return Some ( symbol_idx) ;
772
- }
756
+ if let Some ( ( symbol_idx, _) ) = unmatched_symbols ( obj, used) . find ( |& ( _, symbol) | {
757
+ symbol_name_matches ( & in_symbol. name , & symbol. name )
758
+ && symbol_section_kind ( obj, symbol) == section_kind
759
+ && symbol_section_name ( obj, symbol) == Some ( section_name)
760
+ } ) {
761
+ return Some ( symbol_idx) ;
773
762
}
774
763
775
764
None
0 commit comments