diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-07-11 19:46:23 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-07-11 19:46:23 +0200 |
commit | b0159fbee916e3bbeb2d661b40ae4483a0bcb9b7 (patch) | |
tree | 13c0dad3daf6e336511830c555284e910bf763db /gcc/ada/freeze.ads | |
parent | 3e3a9a6ac1608dcafc4ef5c96a8f30c1d5243dc5 (diff) | |
download | gcc-b0159fbee916e3bbeb2d661b40ae4483a0bcb9b7.zip gcc-b0159fbee916e3bbeb2d661b40ae4483a0bcb9b7.tar.gz gcc-b0159fbee916e3bbeb2d661b40ae4483a0bcb9b7.tar.bz2 |
[multiple changes]
2009-07-11 Thomas Quinot <quinot@adacore.com>
* sem_util.adb, sem_res.adb, sem_warn.adb: Minor comment editing:
Lvalue -> lvalue
* exp_ch6.adb: Minor reformatting
2009-07-11 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Expand_Atomic_Aggregate): Clean up code, take into
account possible type qualification to determine whether aggregate
needs a target temporary to respect atomic type or object.
* exp_aggr.adb (Expand_Record_Aggregate): Use new version of
Expand_Atomic_Aggregate.
2009-07-11 Emmanuel Briot <briot@adacore.com>
* prj.adb, prj.ads, prj-nmsc.adb (Mark_Excluded_Sources): Speed up
algorithm.
(Excluded_Sources_Htable): No longer a global table.
Change error message to indicate which files are illegal in the list
of excluded files, as opposed to only the location in the project
file.
(Find_Source): New subprogram.
From-SVN: r149515
Diffstat (limited to 'gcc/ada/freeze.ads')
-rw-r--r-- | gcc/ada/freeze.ads | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ada/freeze.ads b/gcc/ada/freeze.ads index 1afec17..ac2fa8c 100644 --- a/gcc/ada/freeze.ads +++ b/gcc/ada/freeze.ads @@ -175,12 +175,17 @@ 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); + function Expand_Atomic_Aggregate + (E : Entity_Id; + Typ : Entity_Id) return Boolean; + -- 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. + -- so that the back end can generate an atomic move for it. This is + -- only done in the context of an object declaration or an assignment. + -- Function is a noop and returns false in other contexts. function Freeze_Entity (E : Entity_Id; Loc : Source_Ptr) return List_Id; -- Freeze an entity, and return Freeze nodes, to be inserted at the |