Small fix to PLACEHOLDER_EXPR handling in loc_list_from_tree_1
This handles the discriminated record types of Ada: the PLACEHOLDER_EXPR is the "template" expression for the discriminant in the type definition. Now for some components, typically arrays whose upper bound is the discriminant, the compiler creates a local subtype for the component, so the code needs to be able to deal with this nested type. gcc/ChangeLog: * dwarf2out.c (loc_list_from_tree_1) <PLACEHOLDER_EXPR>: Deal with a nested context type
This commit is contained in:
parent
8c60696b69
commit
237a8e8d56
|
@ -18246,9 +18246,10 @@ loc_list_from_tree_1 (tree loc, int want_address,
|
|||
/* This case involves extracting fields from an object to determine the
|
||||
position of other fields. It is supposed to appear only as the first
|
||||
operand of COMPONENT_REF nodes and to reference precisely the type
|
||||
that the context allows. */
|
||||
that the context allows or its enclosing type. */
|
||||
if (context != NULL
|
||||
&& TREE_TYPE (loc) == context->context_type
|
||||
&& (TREE_TYPE (loc) == context->context_type
|
||||
|| TREE_TYPE (loc) == TYPE_CONTEXT (context->context_type))
|
||||
&& want_address >= 1)
|
||||
{
|
||||
if (dwarf_version >= 3 || !dwarf_strict)
|
||||
|
|
Loading…
Reference in New Issue