aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2020-06-03 10:30:09 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2020-07-15 09:42:48 -0400
commit257baf5ab9693cded2273f32293fdc925aea35c0 (patch)
tree77670bec81f823c951c674f368c19184d5040e9a /gcc
parentd0f6dd47fd7744835f6f2dde4394a5c7a41fe895 (diff)
downloadgcc-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.ads12
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