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: