diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2007-12-15 09:32:38 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2007-12-15 09:32:38 +0000 |
commit | 155eaaa03139229166b0cdf83bd8cdd718bd1b08 (patch) | |
tree | 61e1e236545bb1d7cb0307596fa7bd1fcfb97604 /bfd/elf-bfd.h | |
parent | 5241d85325456acf1c190f10e54e87cb11a624a1 (diff) | |
download | gdb-155eaaa03139229166b0cdf83bd8cdd718bd1b08.zip gdb-155eaaa03139229166b0cdf83bd8cdd718bd1b08.tar.gz gdb-155eaaa03139229166b0cdf83bd8cdd718bd1b08.tar.bz2 |
bfd/
* elf-bfd.h (eh_cie_fde): Put cie_inf in a union. Add a reloc_index
field. Use bitfields for fde_encoding, lsda_encoding and lsda_offset.
* elf-eh-frame.c (extra_augmentation_data_bytes): Adjust cie_inf
accesses after the above change.
(_bfd_elf_eh_frame_section_offset): Likewise.
(_bfd_elf_write_section_eh_frame): Likewise.
(_bfd_elf_discard_section_eh_frame): Likewise. Set up reloc_index.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index c06ea07..42a1f74 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -264,14 +264,19 @@ struct elf_link_loaded_list /* Structures used by the eh_frame optimization code. */ struct eh_cie_fde { - /* For FDEs, this points to the CIE used. */ - struct eh_cie_fde *cie_inf; + union { + struct { + /* The CIE that we have chosen to use for this FDE. */ + struct eh_cie_fde *cie_inf; + } fde; + } u; + unsigned int reloc_index; unsigned int size; unsigned int offset; unsigned int new_offset; - unsigned char fde_encoding; - unsigned char lsda_encoding; - unsigned char lsda_offset; + unsigned int fde_encoding : 8; + unsigned int lsda_encoding : 8; + unsigned int lsda_offset : 8; unsigned int cie : 1; unsigned int removed : 1; unsigned int add_augmentation_size : 1; |