aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/lang-specs.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2023-04-18 12:44:55 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-06-13 09:31:43 +0200
commitfc84947c6a92e7379e1c87d6de28de34296c27ec (patch)
tree3a288c9d6f38a4b37f765e4e4dc546d0ed170a3c /gcc/ada/gcc-interface/lang-specs.h
parent431180997887296965f00328ec45c3d1f68ad4e9 (diff)
downloadgcc-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