From 1f57314183549008c065ad2240598d2b0f0ff56b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 10 Nov 2020 11:55:18 +0000 Subject: [PATCH] Accept the DW_FORM_ref8 type when parsing DWARF types. * dwarf.c (skip_attr_bytes): Correctly handle DW_FORM_ref8. (get_type_abbrev_from_form): Accept DW_FORM_ref8. --- binutils/dwarf.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 58077447293..cf68ebaff7d 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) { -- 2.30.2