diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2023-04-18 12:44:55 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-06-13 09:31:43 +0200 |
commit | fc84947c6a92e7379e1c87d6de28de34296c27ec (patch) | |
tree | 3a288c9d6f38a4b37f765e4e4dc546d0ed170a3c /gcc/ada/gcc-interface/lang-specs.h | |
parent | 431180997887296965f00328ec45c3d1f68ad4e9 (diff) | |
download | gcc-fc84947c6a92e7379e1c87d6de28de34296c27ec.zip gcc-fc84947c6a92e7379e1c87d6de28de34296c27ec.tar.gz gcc-fc84947c6a92e7379e1c87d6de28de34296c27ec.tar.bz2 |
ada: Factor common processing in expansion of aggregates
The final processing at the component level of array aggregates and record
aggregates is very similar, so this factors out the common processing into
three new library-level subprograms.
There should be no functional changes, but the expanded code may be changed
in the case of controlled components of array aggregates not covered by a
multiple choice: the previous expansion used to place new declarations prior
to the aggregate in this case and that is no longer the case, i.e. they are
always placed right before the initialization of the component (as was done
for all controlled components of record aggregates and controlled components
of array aggregates covered by a multiple choice).
gcc/ada/
* exp_aggr.adb (Initialize_Component): New procedure factored out
from the processing of array and record aggregates.
(Initialize_Controlled_Component): Likewise.
(Initialize_Simple_Component): Likewise.
(Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter.
Call Initialize_Component to initialize the component.
(Initialize_Array_Component): Delete.
(Initialize_Ctrl_Array_Component): Likewise.
(Build_Array_Aggr_Code): Adjust calls to Gen_Assign.
(Build_Record_Aggr_Code): Call Initialize_Simple_Component or
Initialize_Component to initialize the component.
(Initialize_Ctrl_Record_Component): Delete.
(Initialize_Record_Component): Likewise.
Diffstat (limited to 'gcc/ada/gcc-interface/lang-specs.h')
0 files changed, 0 insertions, 0 deletions