diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2-frame.c | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8bfd0f8..55c0da8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-05-14 Daniel Jacobowitz <dan@codesourcery.com> + + * dwarf2-frame.c (read_encoded_value): Correct typo. Use + DW_EH_PE_signed if appropriate. + 2007-05-14 Paul Brook <paul@codesourcery.com> Daniel Jacobowitz <dan@codesourcery.com> diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index 1e1d395..6af1421 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -1451,7 +1451,7 @@ read_encoded_value (struct comp_unit *unit, gdb_byte encoding, base = 0; break; case DW_EH_PE_pcrel: - base = bfd_get_section_vma (unit->bfd, unit->dwarf_frame_section); + base = bfd_get_section_vma (unit->abfd, unit->dwarf_frame_section); base += (buf - unit->dwarf_frame_buffer); break; case DW_EH_PE_datarel: @@ -1482,7 +1482,11 @@ read_encoded_value (struct comp_unit *unit, gdb_byte encoding, } if ((encoding & 0x07) == 0x00) - encoding |= encoding_for_size (ptr_len); + { + encoding |= encoding_for_size (ptr_len); + if (bfd_get_sign_extend_vma (unit->abfd)) + encoding |= DW_EH_PE_signed; + } switch (encoding & 0x0f) { |