From: Mark Wielaard Date: Wed, 10 Apr 2013 13:52:57 +0000 (+0200) Subject: libdw: DW_FORM_GNU_ref_alt is always offset_size. X-Git-Tag: elfutils-0.156~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4744a7f641bbafe1a92529a812277052ae67029;p=thirdparty%2Felfutils.git libdw: DW_FORM_GNU_ref_alt is always offset_size. 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 --- diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 12df9bbe1..ae266d4e5 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,9 @@ +2013-04-10 Mark Wielaard + + * 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 * dwarf_getsrclines.c (dwarf_getsrclines): Mark highest address as diff --git a/libdw/dwarf_formref_die.c b/libdw/dwarf_formref_die.c index f0701270f..b1af2abf2 100644 --- a/libdw/dwarf_formref_die.c +++ b/libdw/dwarf_formref_die.c @@ -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);