ada: Fix internal error on nested aggregate in conditional expression

This plugs a loophole in the change improving code generation for nested
aggregates present in conditional expressions: once the delayed expansion
is chosen for the nested aggregate, the expansion of the parent aggregate
cannot be left to the back-end and the test must be adjusted to implement
this in the presence of conditional expressions too.

gcc/ada/

	* exp_aggr.adb (Expand_Record_Aggregate.Component_OK_For_Backend):
	Also return False for a delayed conditional expression.
This commit is contained in:
Eric Botcazou 2024-03-29 17:46:43 +01:00 committed by Marc Poulhiès
parent efc7ba5f8f
commit bfa743ddc9

View file

@ -8376,7 +8376,9 @@ package body Exp_Aggr is
Static_Components := False;
return False;
elsif Is_Delayed_Aggregate (Expr_Q) then
elsif Is_Delayed_Aggregate (Expr_Q)
or else Is_Delayed_Conditional_Expression (Expr_Q)
then
Static_Components := False;
return False;