Delete redundant struct cie field
authorAlan Modra <amodra@gmail.com>
Thu, 21 Aug 2014 23:42:09 +0000 (09:12 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 22 Aug 2014 00:39:09 +0000 (10:09 +0930)
commit4564fb94daa76c3b339507f0f985dc139f2db8ba
treed791cced98f6053c95bada6c96045eb8c5e588f8
parentda44f4e5464f82dec79eb5885961c6466dd3bf6a
Delete redundant struct cie field

cie->output_sec is used to when merging CIEs to ensure that only CIEs
from the same output section are merged.  I noticed an assignment to
this field in _bfd_elf_parse_eh_frame, and thought "That's wrong,
output_section isn't set properly when _bfd_elf_parse_eh_frame is
called from gc-sections code".  It turns out that this assignment is
premature, and in fact a dead store.  find_merged_cie overwrites with
the correct value before the field is ever used.  On looking a little
more it becomes apparent that cie->cie_inf.u.cie.u.sec->output_section
holds the same value, so cie->output_sec is redundant.

* elf-eh-frame.c (struct cie): Delete "output_sec" field.
(cie_eq, cie_compute_hash): Use output_section from cie_inf instead.
bfd/ChangeLog
bfd/elf-eh-frame.c