diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2-frame.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cd8aac4bffa..8db2abad30f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2004-11-05 Mark Kettenis <kettenis@gnu.org> + + * dwarf2-frame.c (decode_frame_entry_1): Avoid indirection when + skipping a personality routine in a CIE augmentation. + 2004-11-05 Jeff Johnston <jjohnstn@redhat.com> * defs.h (fatal, vfatal): New function prototypes. diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index 39722cc1bc0..b5737d25a6c 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -1380,8 +1380,8 @@ decode_frame_entry_1 (struct comp_unit *unit, char *start, int eh_frame_p) /* "P" indicates a personality routine in the CIE augmentation. */ else if (*augmentation == 'P') { - /* Skip. */ - unsigned char encoding = *buf++; + /* Skip. Avoid indirection since we throw away the result. */ + unsigned char encoding = (*buf++) & ~DW_EH_PE_indirect; read_encoded_value (unit, encoding, buf, &bytes_read); buf += bytes_read; augmentation++; |