* dwarf2read.c (read_attribute_value): Treat size attribute
values of 0xffffffff as if the attribute value was zero.
This commit is contained in:
parent
8a77dff322
commit
28e9494986
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue