Fix PR ada/98740
It's a long-standing GENERIC tree sharing issue. gcc/ada/ChangeLog: PR ada/98740 * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
This commit is contained in:
parent
9ee33d7c33
commit
665e80ca5e
1 changed files with 6 additions and 5 deletions
|
@ -8479,15 +8479,16 @@ add_decl_expr (tree gnu_decl, Node_Id gnat_node)
|
|||
MARK_VISITED (DECL_SIZE_UNIT (gnu_decl));
|
||||
MARK_VISITED (DECL_INITIAL (gnu_decl));
|
||||
}
|
||||
/* In any case, we have to deal with our own TYPE_ADA_SIZE field. */
|
||||
else if (TREE_CODE (gnu_decl) == TYPE_DECL
|
||||
&& RECORD_OR_UNION_TYPE_P (type)
|
||||
&& !TYPE_FAT_POINTER_P (type))
|
||||
MARK_VISITED (TYPE_ADA_SIZE (type));
|
||||
}
|
||||
else
|
||||
add_stmt_with_node (gnu_stmt, gnat_node);
|
||||
|
||||
/* Mark our TYPE_ADA_SIZE field now since it will not be gimplified. */
|
||||
if (TREE_CODE (gnu_decl) == TYPE_DECL
|
||||
&& RECORD_OR_UNION_TYPE_P (type)
|
||||
&& !TYPE_FAT_POINTER_P (type))
|
||||
MARK_VISITED (TYPE_ADA_SIZE (type));
|
||||
|
||||
/* If this is a variable and an initializer is attached to it, it must be
|
||||
valid for the context. Similar to init_const in create_var_decl. */
|
||||
if (TREE_CODE (gnu_decl) == VAR_DECL
|
||||
|
|
Loading…
Add table
Reference in a new issue