File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed
objdiff-core/src/arch/ppc Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -358,7 +358,22 @@ impl Arch for ArchPpc {
358358 }
359359
360360 fn extra_symbol_flags ( & self , symbol : & object:: Symbol ) -> SymbolFlagSet {
361- if self . extab . as_ref ( ) . is_some_and ( |extab| extab. contains_key ( & ( symbol. index ( ) . 0 - 1 ) ) ) {
361+ // X360 COFFs should automatically hide all symbols starting with "except_data",
362+ // because those are not functions - they're pointers to exception data structs
363+ if self . extensions . eq ( & powerpc:: Extensions :: xenon ( ) ) {
364+ match symbol. name ( ) {
365+ Ok ( name) => {
366+ if name. starts_with ( "except_data_" ) {
367+ SymbolFlag :: Hidden . into ( )
368+ }
369+ else {
370+ SymbolFlag :: none ( )
371+ }
372+ }
373+ Err ( _) => { SymbolFlag :: none ( ) }
374+ }
375+ }
376+ else if self . extab . as_ref ( ) . is_some_and ( |extab| extab. contains_key ( & ( symbol. index ( ) . 0 - 1 ) ) ) {
362377 SymbolFlag :: HasExtra . into ( )
363378 } else {
364379 SymbolFlag :: none ( )
You can’t perform that action at this time.
0 commit comments