https://sourceware.org/bugzilla/show_bug.cgi?id=17512

Paul Carroll <pcarroll at codesourcery dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pcarroll at codesourcery dot 
com

--- Comment #233 from Paul Carroll <pcarroll at codesourcery dot com> ---
If I may say so, I believe the issue of synthetic symbols is not being handled
correctly by the patch here.
The 'is_synthetic' flag was added to 'print_symbol()'.
The flag itself is set in 'print_size_symbols()' and 'print_symbols()' by just
deciding that the last 'synth_count' symbols in the list are synthetic.
However, since there are 2 different methods of sorting these symbols, either
with the 'qsort()' or the call to 'sort_symbols_by_size()', it is unlikely that
the last 'synth_count' symbols of each sort will all be synthetic.
There is also the added call to 'filter_symbols()' before the sorts, which may
or may not remove synthetic symbols, while not adjusting the 'synth_count'
value.
(If no synthetic symbols are filtered, then there is no harm - I haven't looked
at the filter function yet)

In my opinion, it makes more sense to remove the 'from >= fromsynth' from the
calls to 'print_symbol()' and 'print_size_symbols()', since the last
'synth_count' symbols are not going to be synthetic.
Likewise, 'print_symbols()' can drop the 'is_synthetic' argument.
Instead, the symbol's flag can be tested to see if BSF_SYNTHETIC is set.
By doing that, the position of the symbol in the sorted list is irrelevant.

I am assuming that only synthetic symbols are being created with the
BSF_SYNTHETIC flag set.  That seems to match the code in the bfd directory.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to