From: Mark Kettenis Date: Sat, 1 May 2004 10:55:19 +0000 (+0000) Subject: * dwarf2-frame.c (read_encoded_value): Handle DW_EH_PE_funcrel X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=03ac2a74f949f0ff3796e2d0a083ac6d88e16c20;p=binutils-gdb.git * dwarf2-frame.c (read_encoded_value): Handle DW_EH_PE_funcrel encondings. Fixes PR gdb/1628. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 937b6f3f0ff..dafa5bd1a81 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2004-05-01 Mark Kettenis + * dwarf2-frame.c (read_encoded_value): Handle DW_EH_PE_funcrel + encondings. Fixes PR gdb/1628. + * dwarf2-frame.c (execute_cfa_program): Complain if we encounter a DW_CFA_restore state without a matching DW_CFA_remember_state instead of aborting. Fixes PR backtrace/1589. diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index fafc8fc6574..fccb94d3e33 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -1088,6 +1088,14 @@ read_encoded_value (struct comp_unit *unit, unsigned char encoding, case DW_EH_PE_textrel: base = unit->tbase; break; + case DW_EH_PE_funcrel: + /* FIXME: kettenis/20040501: For now just pretend + DW_EH_PE_funcrel is equivalent to DW_EH_PE_absptr. For + reading the initial location of an FDE it should be treated + as such, and currently that's the only place where this code + is used. */ + base = 0; + break; case DW_EH_PE_aligned: base = 0; offset = buf - unit->dwarf_frame_buffer;