This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[COMMIT] Avoid unnecessary indirection when decoding DWARF CFI
- From: Mark Kettenis <kettenis at gnu dot org>
- To: gdb-patches at sources dot redhat dot com, cagney at gnu dot org, drow at false dot org
- Date: Fri, 5 Nov 2004 23:37:32 +0100 (CET)
- Subject: [COMMIT] Avoid unnecessary indirection when decoding DWARF CFI
This fixes the problems for me. It's better to skip the indirection
here anyway, since it will save a memory read and thus avoids any
problems with that.
Committed,
Mark
P.S. Andrew, can you test it on your systems. I still like to get
this on the branch since it fixes a nasty problem on SPARC. But it
can wait until 6.3.1.
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* dwarf2-frame.c (decode_frame_entry_1): Avoid indirection when
skipping a personality routine in a CIE augmentation.
Index: dwarf2-frame.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
retrieving revision 1.42
diff -u -p -r1.42 dwarf2-frame.c
--- dwarf2-frame.c 5 Nov 2004 15:16:44 -0000 1.42
+++ dwarf2-frame.c 5 Nov 2004 22:30:07 -0000
@@ -1380,8 +1380,8 @@ decode_frame_entry_1 (struct comp_unit *
/* "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++;