Commit c5b7d7b7 by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/71669 (DW_AT_data_bit_offset is not emitted for dwarf4 and above)

	PR debug/71669
	* dwarf2out.c (add_data_member_location_attribute): For constant
	offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
	instead of DW_AT_data_member_location, DW_AT_bit_offset and
	DW_AT_byte_size attributes.

From-SVN: r244542
parent d25fabdc
2017-01-17 Jakub Jelinek <jakub@redhat.com>
PR debug/71669
* dwarf2out.c (add_data_member_location_attribute): For constant
offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
instead of DW_AT_data_member_location, DW_AT_bit_offset and
DW_AT_byte_size attributes.
2017-01-17 Eric Botcazou <ebotcazou@adacore.com> 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
* config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
......
...@@ -18272,6 +18272,23 @@ add_data_member_location_attribute (dw_die_ref die, ...@@ -18272,6 +18272,23 @@ add_data_member_location_attribute (dw_die_ref die,
if (! loc_descr) if (! loc_descr)
{ {
/* While DW_AT_data_bit_offset has been added already in DWARF4,
e.g. GDB only added support to it in November 2016. For DWARF5
we need newer debug info consumers anyway. We might change this
to dwarf_version >= 4 once most consumers catched up. */
if (dwarf_version >= 5
&& TREE_CODE (decl) == FIELD_DECL
&& DECL_BIT_FIELD_TYPE (decl))
{
tree off = bit_position (decl);
if (tree_fits_uhwi_p (off) && get_AT (die, DW_AT_bit_size))
{
remove_AT (die, DW_AT_byte_size);
remove_AT (die, DW_AT_bit_offset);
add_AT_unsigned (die, DW_AT_data_bit_offset, tree_to_uhwi (off));
return;
}
}
if (dwarf_version > 2) if (dwarf_version > 2)
{ {
/* Don't need to output a location expression, just the constant. */ /* Don't need to output a location expression, just the constant. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment