diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2020-06-03 10:30:09 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-15 09:42:48 -0400 |
commit | 257baf5ab9693cded2273f32293fdc925aea35c0 (patch) | |
tree | 77670bec81f823c951c674f368c19184d5040e9a /gcc | |
parent | d0f6dd47fd7744835f6f2dde4394a5c7a41fe895 (diff) | |
download | gcc-257baf5ab9693cded2273f32293fdc925aea35c0.zip gcc-257baf5ab9693cded2273f32293fdc925aea35c0.tar.gz gcc-257baf5ab9693cded2273f32293fdc925aea35c0.tar.bz2 |
[Ada] Small addition and tweaks in documentation on freezing
gcc/ada/
* einfo.ads (Delayed Freezing and Elaboration): Minor tweaks.
Document the discrepancy between the aspect and the non-aspect
cases for alignment settings in object declarations.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/einfo.ads | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index abb7cba..f3a042a 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -266,28 +266,30 @@ package Einfo is -- The flag Has_Delayed_Freeze indicates that an entity carries an explicit -- freeze node, which appears later in the expanded tree. --- a) The flag is used by the front-end to trigger expansion actions which +-- a) The flag is used by the front end to trigger expansion activities which -- include the generation of that freeze node. Typically this happens at the -- end of the current compilation unit, or before the first subprogram body is --- encountered in the current unit. See files freeze and exp_ch13 for details +-- encountered in the current unit. See units Freeze and Exp_Ch13 for details -- on the actions triggered by a freeze node, which include the construction -- of initialization procedures and dispatch tables. --- b) The presence of a freeze node on an entity is used by the backend to +-- b) The presence of a freeze node on an entity is used by the back end to -- defer elaboration of the entity until its freeze node is seen. In the -- absence of an explicit freeze node, an entity is frozen (and elaborated) -- at the point of declaration. -- For object declarations, the flag is set when an address clause for the -- object is encountered. Legality checks on the address expression only take --- place at the freeze point of the object. +-- place at the freeze point of the object. In Ada 2012, the flag is also set +-- when an address or an alignment aspect for the object is encountered (note +-- the discrepancy with the non-aspect case). -- Most types have an explicit freeze node, because they cannot be elaborated -- until all representation and operational items that apply to them have been -- analyzed. Private types and incomplete types have the flag set as well, as -- do task and protected types. --- Implicit base types created for type derivations, as well as classwide +-- Implicit base types created for type derivations, as well as class-wide -- types created for all tagged types, have the flag set. -- If a subprogram has an access parameter whose designated type is incomplete |