Discussion: {AI12-0417-1}
Pragmas that do not have associated aspects still
appear in 10.2.1. These pragmas are presented
in the order that the aspects are defined in 10.2.1.
{AI12-0417-1}
A pragma
Preelaborate specifies that a library unit is preelaborated, namely that
the Preelaborate aspect (see 10.2.1) of
the library unit is True.
{AI12-0417-1}
A pragma
Elaborate_Body specifies that [a library unit requires a completion,
namely that] the Elaborate_Body aspect (see 10.2.1)
of the library unit is True.
{AI12-0409-1}
A pragma
Preelaborable_Initialization specifies that the Preelaborable_Initialization
aspect (see 10.2.1) for a composite type
is True. This pragma shall appear in the visible part of a package or
generic package.
{AI12-0409-1}
If the pragma appears in the first declaration
list of a package_specification,
then the direct_name
shall denote the first subtype of a composite type, and the type shall
be declared immediately within the same package as the pragma. The composite
type shall be one for which the Preelaborable_Initialization aspect can
be directly specified as True. In addition to the places where Legality
Rules normally apply (see 12.3), these rules
also apply in the private part of an instance of a generic unit.
{AI12-0409-1}
If the pragma appears in a generic_formal_part,
then the direct_name
shall denote a type declared in the same generic_formal_part
as the pragma, and be one for which the Preelaborable_Initialization
aspect can be directly specified as True.