From: Eric Botcazou <ebotca...@adacore.com> All the expressions are now at least preanalyzed in a non-iterated context, so we do not need to redo it in Aggr_Assignment_OK_For_Backend, given that Is_OK_Aggregate explicitly rejects iterated component associations.
gcc/ada/ChangeLog: * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Do not call again Preanalyze_And_Resolve on the expression. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_aggr.adb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index c93554347ad..c0218c9e3dc 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -534,10 +534,7 @@ package body Exp_Aggr is end if; -- If the expression has side effects (e.g. contains calls with - -- potential side effects) reject as well. We only preanalyze the - -- expression to prevent the removal of intended side effects. - - Preanalyze_And_Resolve (Expr, Ctyp); + -- potential side effects), then reject it as well. if not Side_Effect_Free (Expr) then return False; -- 2.43.0