re PR ada/35998 (debug info invalid x86_64 DW_AT_byte_size 0xffffffff)
PR ada/35998 * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes for fields. Do not add the attribute if the size is negative. From-SVN: r204736
This commit is contained in:
parent
f819a56dc7
commit
bed36869f0
|
@ -1,3 +1,9 @@
|
|||
2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR ada/35998
|
||||
* dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
|
||||
for fields. Do not add the attribute if the size is negative.
|
||||
|
||||
2013-11-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* config/arm/arm.c: Include aarch-cost-tables.h.
|
||||
|
|
|
@ -16318,11 +16318,13 @@ add_subscript_info (dw_die_ref type_die, tree type, bool collapse_p)
|
|||
}
|
||||
}
|
||||
|
||||
/* Add a DW_AT_byte_size attribute to DIE with TREE_NODE's size. */
|
||||
|
||||
static void
|
||||
add_byte_size_attribute (dw_die_ref die, tree tree_node)
|
||||
{
|
||||
dw_die_ref decl_die;
|
||||
unsigned size;
|
||||
HOST_WIDE_INT size;
|
||||
|
||||
switch (TREE_CODE (tree_node))
|
||||
{
|
||||
|
@ -16346,7 +16348,7 @@ add_byte_size_attribute (dw_die_ref die, tree tree_node)
|
|||
generally given as the number of bytes normally allocated for an
|
||||
object of the *declared* type of the member itself. This is true
|
||||
even for bit-fields. */
|
||||
size = simple_type_size_in_bits (field_type (tree_node)) / BITS_PER_UNIT;
|
||||
size = int_size_in_bytes (field_type (tree_node));
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
|
@ -16355,8 +16357,9 @@ add_byte_size_attribute (dw_die_ref die, tree tree_node)
|
|||
/* Note that `size' might be -1 when we get to this point. If it is, that
|
||||
indicates that the byte size of the entity in question is variable. We
|
||||
have no good way of expressing this fact in Dwarf at the present time,
|
||||
so just let the -1 pass on through. */
|
||||
add_AT_unsigned (die, DW_AT_byte_size, size);
|
||||
when location description was not used by the caller code instead. */
|
||||
if (size >= 0)
|
||||
add_AT_unsigned (die, DW_AT_byte_size, size);
|
||||
}
|
||||
|
||||
/* For a FIELD_DECL node which represents a bit-field, output an attribute
|
||||
|
|
Loading…
Reference in New Issue