Commit: Add support for DW_FORM_ref8 when parsing DWARF types
Nick Clifton
nickc@redhat.com
Tue Nov 10 11:55:03 GMT 2020
Hi Guys,
I am applying the patch below to add support for the DW_FORM_ref8 type
when parsing DWARF types. I had not thought that this form would be
used, but the testsuite for the dwz project proved me wrong...
Cheers
Nick
binutils/ChangeLog
2020-11-10 Nick Clifton <nickc@redhat.com>
* dwarf.c (skip_attr_bytes): Correctly handle DW_FORM_ref8.
(get_type_abbrev_from_form): Accept DW_FORM_ref8.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 5807744729..cf68ebaff7 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -2025,6 +2025,21 @@ skip_attr_bytes (unsigned long form,
break;
case DW_FORM_ref8:
+ {
+ dwarf_vma high_bits;
+
+ SAFE_BYTE_GET64 (data, &high_bits, &uvalue, end);
+ data += 8;
+ if (sizeof (uvalue) > 4)
+ uvalue += high_bits << 32;
+ else if (high_bits != 0)
+ {
+ /* FIXME: What to do ? */
+ return NULL;
+ }
+ break;
+ }
+
case DW_FORM_data8:
case DW_FORM_ref_sig8:
data += 8;
@@ -2115,6 +2130,7 @@ get_type_abbrev_from_form (unsigned long form,
case DW_FORM_ref1:
case DW_FORM_ref2:
case DW_FORM_ref4:
+ case DW_FORM_ref8:
case DW_FORM_ref_udata:
if (uvalue + cu_offset > section->size)
{
More information about the Binutils
mailing list