From bfa743ddc9fd1850a7cc282afe5f3101b544ac64 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 29 Mar 2024 17:46:43 +0100 Subject: 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. --- gcc/ada/exp_aggr.adb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index a386aa8..796b0f1 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -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; -- cgit v1.1