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:
Eric Botcazou 2020-09-12 12:47:39 +02:00
parent b440715089
commit fe47e81639

View file

@ -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. */