aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2-frame.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-05-14 17:19:48 +0000
committerDaniel Jacobowitz <drow@false.org>2007-05-14 17:19:48 +0000
commitf2fec8644535ac3a140f3968bc48aca9afc029b0 (patch)
treece700ef53536a1dfbec8f8e43e1b8bfac79bd4ba /gdb/dwarf2-frame.c
parent25e43795f0cab0279603dfb85ac9d26866c829e0 (diff)
downloadgdb-f2fec8644535ac3a140f3968bc48aca9afc029b0.zip
gdb-f2fec8644535ac3a140f3968bc48aca9afc029b0.tar.gz
gdb-f2fec8644535ac3a140f3968bc48aca9afc029b0.tar.bz2
* dwarf2-frame.c (read_encoded_value): Correct typo. Use
DW_EH_PE_signed if appropriate.
Diffstat (limited to 'gdb/dwarf2-frame.c')
-rw-r--r--gdb/dwarf2-frame.c8
1 files changed, 6 insertions, 2 deletions
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)
{