]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libdw: DW_FORM_GNU_ref_alt is always offset_size.
authorMark Wielaard <mjw@redhat.com>
Wed, 10 Apr 2013 13:52:57 +0000 (15:52 +0200)
committerMark Wielaard <mjw@redhat.com>
Wed, 10 Apr 2013 13:52:57 +0000 (15:52 +0200)
Unlike DW_FORM_ref_addr, a DW_FORM_GNU_ref_alt is always of offset size,
even in DWARF version 2.

Signed-off-by: Mark Wielaard <mjw@redhat.com>
libdw/ChangeLog
libdw/dwarf_formref_die.c

index 12df9bbe176f50e4b774fab4ce6c94e2d62cb5d0..ae266d4e5c1871633037423ee80917551c8c1520 100644 (file)
@@ -1,3 +1,9 @@
+2013-04-10  Mark Wielaard  <mjw@redhat.com>
+
+       * dwarf_formref_die.c (dwarf_formref_die): Reference size is only
+       equal to address size when we have a DW_FORM_ref_addr for DWARF
+       version 2.
+
 2013-03-25  Mark Wielaard  <mjw@redhat.com>
 
        * dwarf_getsrclines.c (dwarf_getsrclines): Mark highest address as
index f0701270fdc0abfc9884b293aa8251a4b51809f4..b1af2abf269644030e2d137e91d16adcf3b0cf8b 100644 (file)
@@ -50,7 +50,7 @@ dwarf_formref_die (attr, result)
     {
       /* This has an absolute offset.  */
 
-      uint8_t ref_size = (cu->version == 2
+      uint8_t ref_size = (cu->version == 2 && attr->form == DW_FORM_ref_addr
                          ? cu->address_size
                          : cu->offset_size);