Commit 7c154ecc by Pierre-Marie de Rodat Committed by Pierre-Marie de Rodat

DWARF: allow dynamic data member offsets for inheritance info

An unintended effect of the recently introduced machinery to handle
dynamic data member offsets in variable-length records (when
-fgnat-encodings=minimal) prevented GCC from describing correctly
inheritance information for classes in C++, which is a regression.

This change rectifies this machinery in this case.

gcc/ChangeLog:

	* dwarf2out.c (add_data_member_location_attribute): Do not
	disable dynamic data member offsets descriptions for TREE_BINFO
	members.

From-SVN: r231883
parent 059fbfa8
2015-12-21 Pierre-Marie de Rodat <derodat@adacore.com>
* dwarf2out.c (add_data_member_location_attribute): Do not
disable dynamic data member offsets descriptions for TREE_BINFO
members.
2015-12-21 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/65337
......@@ -16727,21 +16727,21 @@ add_data_member_location_attribute (dw_die_ref die,
{
loc_descr = field_byte_offset (decl, ctx, &offset);
/* Data member location evalutation start with the base address on the
/* If loc_descr is available then we know the field offset is dynamic.
However, GDB does not handle dynamic field offsets very well at the
moment. */
if (loc_descr != NULL && gnat_encodings != DWARF_GNAT_ENCODINGS_MINIMAL)
{
loc_descr = NULL;
offset = 0;
}
/* Data member location evalutation starts with the base address on the
stack. Compute the field offset and add it to this base address. */
if (loc_descr != NULL)
else if (loc_descr != NULL)
add_loc_descr (&loc_descr, new_loc_descr (DW_OP_plus, 0, 0));
}
/* If loc_descr is available then we know the field offset is dynamic.
However, GDB does not handle dynamic field offsets very well at the
moment. */
if (loc_descr != NULL && gnat_encodings != DWARF_GNAT_ENCODINGS_MINIMAL)
{
loc_descr = NULL;
offset = 0;
}
if (! loc_descr)
{
if (dwarf_version > 2)
......
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