Confusion in coff_object_cleanup
authorAlan Modra <amodra@gmail.com>
Sun, 27 Aug 2023 03:27:16 +0000 (12:57 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 27 Aug 2023 04:27:42 +0000 (13:57 +0930)
commit26d0081b52dc482c59abba23ca495304e698ce4b
tree23ccfa86012bdb77d33e7d52b71344bdc0dbe366
parent398f1ddf5e89e066aeee242ea854dcbaa8eb9539
Confusion in coff_object_cleanup

A bfd_cleanup function needs to run when only tdata is correct for the
bfd.  The xvec may have changed during bfd_check_format and thus the
flavour may be incorrect.  The format won't have changed but checking
is superfluous.  (In contrast to _bfd_free_cached_info or
_close_and_cleanup where we do need to check things.)

Not getting this correct leaked comdat_hash.

Also, pe_ILF_cleanup ought to call coff_object_cleanup as do all PE
files.

* coffgen.c (coff_object_cleanup): Don't check bfd flavour or
format.
* peicode.h (pe_ILF_cleanup): Call coff_object_cleanup.
bfd/coffgen.c
bfd/peicode.h