]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* dwarf2-frame.c (decode_frame_entry_1): Correctly skip
authorMark Kettenis <kettenis@gnu.org>
Sat, 20 Nov 2004 09:42:18 +0000 (09:42 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sat, 20 Nov 2004 09:42:18 +0000 (09:42 +0000)
personality routine in a CIE augmentation.  Avoid indirection.

gdb/ChangeLog
gdb/dwarf2-frame.c

index 8e5b2c0e6b7cc13793e0fe7c4968c389180d0323..71dced248f41646c2e7ba8c9191ebe9dca2d27ff 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-20  Mark Kettenis  <kettenis@gnu.org>
+
+       * dwarf2-frame.c (decode_frame_entry_1): Correctly skip
+       personality routine in a CIE augmentation.  Avoid indirection.
+
 2004-11-12  Kei Sakamoto  <sakamoto.kei@renesas.com>
 
        * Makefile.in (m32r-linux-tdep.o): Update dependencies.
index a13e8a14a139365504b46c955a8c696ad282a55d..1403740b85311d2af457612f5fcb081b5677efb0 100644 (file)
@@ -1355,8 +1355,10 @@ 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.  */
-             buf += size_of_encoded_value (*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++;
            }