From: Viljar Indus <in...@adacore.com> The compiler should use unnamed addition methods such as Append when expanding a container aggregate with Iterator Specification.
gcc/ada/ * exp_aggr.adb (Expand_Container_Aggregate): Use the positional addition method only when dealing with a container aggregate without an Iterator Specification e.g. with a loop parameter specification Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_aggr.adb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index 4c8dcae9d83..dffc5ab721d 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -7259,8 +7259,11 @@ package body Exp_Aggr is -- Iterated component association. Discard -- positional insertion procedure. - Add_Named_Subp := Assign_Indexed_Subp; - Add_Unnamed_Subp := Empty; + if not Present (Iterator_Specification (Comp)) then + Add_Named_Subp := Assign_Indexed_Subp; + Add_Unnamed_Subp := Empty; + end if; + Expand_Iterated_Component (Comp); end if; -- 2.40.0