Fix hidden symbol regression

The flagset .contains check doesn't work like this.

Fixes #199
This commit is contained in:
Luke Street 2025-05-13 21:37:29 -06:00
parent 1750af736a
commit 2b13e9886a
2 changed files with 7 additions and 3 deletions

View File

@ -245,12 +245,14 @@ fn report_object(
for (symbol, symbol_diff) in obj.symbols.iter().zip(&obj_diff.symbols) { for (symbol, symbol_diff) in obj.symbols.iter().zip(&obj_diff.symbols) {
if symbol.section != Some(section_idx) if symbol.section != Some(section_idx)
|| symbol.size == 0 || symbol.size == 0
|| symbol.flags.contains(SymbolFlag::Hidden | SymbolFlag::Ignored) || symbol.flags.contains(SymbolFlag::Hidden)
|| symbol.flags.contains(SymbolFlag::Ignored)
{ {
continue; continue;
} }
if let Some(existing_functions) = &mut existing_functions { if let Some(existing_functions) = &mut existing_functions {
if symbol.flags.contains(SymbolFlag::Global | SymbolFlag::Weak) if (symbol.flags.contains(SymbolFlag::Global)
|| symbol.flags.contains(SymbolFlag::Weak))
&& !existing_functions.insert(symbol.name.clone()) && !existing_functions.insert(symbol.name.clone())
{ {
continue; continue;

View File

@ -616,7 +616,9 @@ fn symbol_matches_filter(
return false; return false;
} }
if !show_hidden_symbols if !show_hidden_symbols
&& (symbol.size == 0 || symbol.flags.contains(SymbolFlag::Hidden | SymbolFlag::Ignored)) && (symbol.size == 0
|| symbol.flags.contains(SymbolFlag::Hidden)
|| symbol.flags.contains(SymbolFlag::Ignored))
{ {
return false; return false;
} }