2007-08-14 Ed Schonberg <schonberg@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2007 08:41:44 +0000 (08:41 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2007 08:41:44 +0000 (08:41 +0000)
commit97582a8c5a633c031f6f3aa80c2d36cbd02205f3
tree7ea896bb4b8bad0b372cd54653b5c14306238718
parentcd78c3195aa33581216b9e921e50ff13aa794333
2007-08-14  Ed Schonberg  <schonberg@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* exp_aggr.ads,
exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
expanded aggregate code before allocator, and ahead of declaration for
temporary, to prevent access before elaboration when the allocator is
an actual for an access parameter.
(Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
the TSD and the table of interfaces.
(Convert_To_Assignments): Augment the test for delaying aggregate
expansion for limited return statements to include the case of extended
returns, to prevent creation of an unwanted transient scope.
(Is_Static_Dispatch_Table_Aggregate): New subprogram.
(Expand_Array_Aggregate): Handle aggregates associated with
statically allocated dispatch tables.
(Expand_Record_Aggregate): Handle aggregates associated with
statically allocated dispatch tables.
(Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
of anonymous access type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127429 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/exp_aggr.adb
gcc/ada/exp_aggr.ads