From 933323198878e8ce57e3d03e46861389a04d20cf Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Wed, 27 Mar 2013 19:21:36 +0000 Subject: [PATCH] Similar to r239870 and r239872, teach the other binutils tools about the DW_FORM_flag_present dwarf attribute, so they do not print errors or warnings on files that contain it. (This attribute can be emitted by newer versions of clang and gcc.) MFC after: 1 week --- contrib/binutils/bfd/dwarf2.c | 3 +++ contrib/binutils/binutils/dwarf.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/contrib/binutils/bfd/dwarf2.c b/contrib/binutils/bfd/dwarf2.c index 411a7154b5eb..6554f0f80bc0 100644 --- a/contrib/binutils/bfd/dwarf2.c +++ b/contrib/binutils/bfd/dwarf2.c @@ -633,6 +633,9 @@ read_attribute_value (struct attribute *attr, attr->u.val = read_1_byte (abfd, info_ptr); info_ptr += 1; break; + case DW_FORM_flag_present: + attr->u.val = 1; + break; case DW_FORM_sdata: attr->u.sval = read_signed_leb128 (abfd, info_ptr, &bytes_read); info_ptr += bytes_read; diff --git a/contrib/binutils/binutils/dwarf.c b/contrib/binutils/binutils/dwarf.c index cc37b25b701d..a11a0eca6b6f 100644 --- a/contrib/binutils/binutils/dwarf.c +++ b/contrib/binutils/binutils/dwarf.c @@ -557,6 +557,7 @@ get_FORM_name (unsigned long form) case DW_FORM_ref8: return "DW_FORM_ref8"; case DW_FORM_ref_udata: return "DW_FORM_ref_udata"; case DW_FORM_indirect: return "DW_FORM_indirect"; + case DW_FORM_flag_present: return "DW_FORM_flag_present"; default: { static char buffer[100]; @@ -969,6 +970,10 @@ read_and_display_attr_value (unsigned long attribute, data += offset_size; break; + case DW_FORM_flag_present: + uvalue = 1; + break; + case DW_FORM_ref1: case DW_FORM_flag: case DW_FORM_data1: @@ -1030,6 +1035,7 @@ read_and_display_attr_value (unsigned long attribute, printf (" %#lx", uvalue); break; + case DW_FORM_flag_present: case DW_FORM_flag: case DW_FORM_data1: case DW_FORM_data2: