diff options
Diffstat (limited to 'bfd/elf-eh-frame.c')
-rw-r--r-- | bfd/elf-eh-frame.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index cf4942a2b6e..eb4a69b04d0 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -506,7 +506,12 @@ _bfd_elf_discard_section_eh_frame (abfd, info, sec, ehdrsec, } read_uleb128 (cie.code_align, buf); read_sleb128 (cie.data_align, buf); - cie.ra_column = *buf++; + /* Note - in DWARF2 the return address column is an unsigned byte. + In DWARF3 it is a ULEB128. We are following DWARF3. For most + ports this will not matter as the value will be less than 128. + For the others (eg FRV, SH, MMIX, IA64) they need a fixed GCC + which conforms to the DWARF3 standard. */ + read_uleb128 (cie.ra_column, buf); ENSURE_NO_RELOCS (buf); cie.lsda_encoding = DW_EH_PE_omit; cie.fde_encoding = DW_EH_PE_omit; |