Teach gdb about the DW_FORM_flag_present dwarf attribute, so it doesn't

error out on files that contain it.  (This attribute can be emitted by
newer versions of clang.)

MFC after:	2 weeks
This commit is contained in:
Dimitry Andric 2012-08-29 18:37:10 +00:00
parent 7b4806d69f
commit ff3657eeaf
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=239870
2 changed files with 8 additions and 1 deletions

View File

@ -238,7 +238,8 @@ enum dwarf_form
DW_FORM_ref4 = 0x13,
DW_FORM_ref8 = 0x14,
DW_FORM_ref_udata = 0x15,
DW_FORM_indirect = 0x16
DW_FORM_indirect = 0x16,
DW_FORM_flag_present = 0x19
};
/* Attribute names and codes. */

View File

@ -4604,6 +4604,9 @@ read_attribute_value (struct attribute *attr, unsigned form,
DW_UNSND (attr) = read_1_byte (abfd, info_ptr);
info_ptr += 1;
break;
case DW_FORM_flag_present:
DW_UNSND (attr) = 1;
break;
case DW_FORM_sdata:
DW_SND (attr) = read_signed_leb128 (abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
@ -7226,6 +7229,9 @@ dump_die (struct die_info *die)
else
fprintf_unfiltered (gdb_stderr, "flag: FALSE");
break;
case DW_FORM_flag_present:
fprintf_unfiltered (gdb_stderr, "flag: TRUE");
break;
case DW_FORM_indirect:
/* the reader will have reduced the indirect form to
the "base form" so this form should not occur */