exp_aggr.adb: If the array component is a discriminated record...
authorEd Schonberg <schonberg@adacore.com>
Fri, 6 Apr 2007 09:19:53 +0000 (11:19 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 6 Apr 2007 09:19:53 +0000 (11:19 +0200)
commit5277cab69bcf175da5fb53b32ae24a61401e610e
tree0a5da656edd636dc5669b2ecbcfcde3234767bb9
parent958a816e69e829d04e175512a09f8b6f43cd2ffd
exp_aggr.adb: If the array component is a discriminated record...

2007-04-06  Ed Schonberg  <schonberg@adacore.com>
    Thomas Quinot  <quinot@adacore.com>

* exp_aggr.adb:
If the array component is a discriminated record, the array aggregate
is non-static even if the component is given by an aggregate with
static components.
(Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
(Convert_Aggr_In_Allocator): If the allocator is for an access
discriminant and the type is controlled. do not place on a finalization
list at this point. The proper list will be determined from the
enclosing object.
(Build_Record_Aggr_Code): If aggregate has box-initialized components,
initialize record controller if needed, before the components, to ensure
that they are properly finalized.
(Build_Record_Aggr_Code): For the case of an array component that has a
corresponding array aggregate in the record aggregate, perform sliding
if required.

From-SVN: r123561
gcc/ada/exp_aggr.adb