diff options
Diffstat (limited to 'gcc/ada/freeze.ads')
-rw-r--r-- | gcc/ada/freeze.ads | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ada/freeze.ads b/gcc/ada/freeze.ads index 247fbc4e9cb..aaa7b009d52 100644 --- a/gcc/ada/freeze.ads +++ b/gcc/ada/freeze.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2001, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2003, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -127,8 +127,7 @@ package Freeze is function Build_Renamed_Body (Decl : Node_Id; - New_S : Entity_Id) - return Node_Id; + New_S : Entity_Id) return Node_Id; -- Rewrite renaming declaration as a subprogram body, whose single -- statement is a call to the renamed entity. New_S is the entity that -- appears in the renaming declaration. If this is a Renaming_As_Body, @@ -170,6 +169,13 @@ package Freeze is -- do not allow a size clause if the size would not otherwise be known at -- compile time in any case. + procedure Expand_Atomic_Aggregate (E : Entity_Id; Typ : Entity_Id); + -- If an atomic object is initialized with an aggregate or is assigned + -- an aggregate, we have to prevent a piecemeal access or assignment + -- to the object, even if the aggregate is to be expanded. we create + -- a temporary for the aggregate, and assign the temporary instead, + -- so that the back end can generate an atomic move for it. + function Freeze_Entity (E : Entity_Id; Loc : Source_Ptr) return List_Id; -- Freeze an entity, and return Freeze nodes, to be inserted at the -- point of call. Loc is a source location which corresponds to the |