* dwarf2read.c (read_attribute_value): Treat size attribute

values of 0xffffffff as if the attribute value was zero.
This commit is contained in:
Joel Brobecker 2008-06-26 19:08:10 +00:00
parent 8a77dff322
commit 28e9494986
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2008-06-26 Joel Brobecker <brobecker@adacore.com>
* dwarf2read.c (read_attribute_value): Treat size attribute
values of 0xffffffff as if the attribute value was zero.
2008-06-26 Vladimir Prus <vladimir@codesourcery.com>
* linux-nat.c: Add description of overall logic.

View File

@ -6234,6 +6234,18 @@ read_attribute_value (struct attribute *attr, unsigned form,
dwarf_form_name (form),
bfd_get_filename (abfd));
}
/* We have seen instances where the compiler tried to emit a byte
size attribute of -1 which ended up being encoded as an unsigned
0xffffffff. Although 0xffffffff is technically a valid size value,
an object of this size seems pretty unlikely so we can relatively
safely treat these cases as if the size attribute was invalid and
treat them as zero by default. */
if (attr->name == DW_AT_byte_size
&& form == DW_FORM_data4
&& DW_UNSND (attr) >= 0xffffffff)
DW_UNSND (attr) = 0;
return info_ptr;
}