aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_aggr.ads
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2007-08-14 10:41:44 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2007-08-14 10:41:44 +0200
commitfa57ac97e9e50108ba984a0a6bfe3d54d339f059 (patch)
tree7ea896bb4b8bad0b372cd54653b5c14306238718 /gcc/ada/exp_aggr.ads
parentdc0961329fdc886ce02cda642873705e76b2ccaa (diff)
downloadgcc-fa57ac97e9e50108ba984a0a6bfe3d54d339f059.zip
gcc-fa57ac97e9e50108ba984a0a6bfe3d54d339f059.tar.gz
gcc-fa57ac97e9e50108ba984a0a6bfe3d54d339f059.tar.bz2
exp_aggr.ads, [...] (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded aggregate code before allocator...
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. From-SVN: r127429
Diffstat (limited to 'gcc/ada/exp_aggr.ads')
-rw-r--r--gcc/ada/exp_aggr.ads14
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ada/exp_aggr.ads b/gcc/ada/exp_aggr.ads
index 4a26511..cb39328 100644
--- a/gcc/ada/exp_aggr.ads
+++ b/gcc/ada/exp_aggr.ads
@@ -40,11 +40,15 @@ package Exp_Aggr is
-- an N_Aggregate or N_Extension_Aggregate with Expansion_Delayed
-- This procedure performs in-place aggregate assignment.
- procedure Convert_Aggr_In_Allocator (Decl, Aggr : Node_Id);
- -- Decl is an access N_Object_Declaration (produced during
- -- allocator expansion), Aggr is the initial expression aggregate
- -- of an allocator. This procedure perform in-place aggregate
- -- assignment in the newly allocated object.
+ procedure Convert_Aggr_In_Allocator
+ (Alloc : Node_Id;
+ Decl : Node_Id;
+ Aggr : Node_Id);
+ -- Alloc is the allocator whose expression is the aggregate Aggr.
+ -- Decl is an N_Object_Declaration created during allocator expansion.
+ -- This procedure perform in-place aggregate assignment into the
+ -- temporary declared in Decl, and the allocator becomes an access to
+ -- that temporary.
procedure Convert_Aggr_In_Assignment (N : Node_Id);
-- If the right-hand side of an assignment is an aggregate, expand the