Fix small inconsistency in new predicate
This can result on the mainline in a segfault when an object declared at library level is used in the declaration of another, local object. gcc/ada/ChangeLog: * gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>: Return false unconditionally.
This commit is contained in:
parent
b440715089
commit
fe47e81639
1 changed files with 2 additions and 6 deletions
|
@ -968,12 +968,8 @@ lvalue_for_aggregate_p (Node_Id gnat_node, tree gnu_type)
|
|||
get_unpadded_type (Etype (gnat_parent)));
|
||||
|
||||
case N_Object_Declaration:
|
||||
/* For an aggregate object declaration, return the constant at top level
|
||||
in order to avoid generating elaboration code. */
|
||||
if (global_bindings_p ())
|
||||
return false;
|
||||
|
||||
/* ... fall through ... */
|
||||
/* For an aggregate object declaration, return false consistently. */
|
||||
return false;
|
||||
|
||||
case N_Assignment_Statement:
|
||||
/* For an aggregate assignment, decide based on the size. */
|
||||
|
|
Loading…
Add table
Reference in a new issue