- (1)
- This subclause discusses pragmas related to program units, library units,
and compilations.
Name Resolution Rules
- (2)
- Certain pragmas are defined to be program unit pragmas. A name given as
the argument of a program unit pragma shall resolve to denote the
declarations or renamings of one or more program units that occur immediately
within the declarative region or compilation in which the pragma immediately
occurs, or it shall resolve to denote the declaration of the immediately
enclosing program unit (if any); the pragma applies to the denoted program
unit(s). If there are no names given as arguments, the pragma applies to the
immediately enclosing program unit.
Legality Rules
- (3)
- A program unit pragma shall appear in one of these places:
- (4)
- At the place of a compilation_unit, in which case the pragma
shall immediately follow in the same compilation (except for
other pragmas) a library_unit_declaration that is a subprogram_declaration, generic_subprogram_declaration, or generic_instantiation, and the pragma shall have an argument that is a name
denoting that declaration.
- (5)
- Immediately within the declaration of a program unit and before
any nested declaration, in which case the argument, if any, shall
be a direct_name that denotes the immediately enclosing program
unit declaration.
- (6)
- At the place of a declaration other than the first, of a
declarative_part or program unit declaration, in which case the
pragma shall have an argument, which shall be a direct_name that
denotes one or more of the following (and nothing else): a
subprogram_declaration, a generic_subprogram_declaration, or a
generic_instantiation, of the same declarative_part or program
unit declaration.
- (7)
- Certain program unit pragmas are defined to be library unit pragmas. The
name, if any, in a library unit pragma shall denote the declaration of a
library unit.
Post-Compilation Rules
- (8)
- Certain pragmas are defined to be configuration pragmas; they shall
appear before the first compilation_unit of a compilation. They are
generally used to select a partition-wide or system-wide option. The pragma
applies to all compilation_units appearing in the compilation, unless there
are none, in which case it applies to all future compilation_units compiled
into the same environment.
Implementation Permissions
- (9)
- An implementation may place restrictions on configuration pragmas, so
long as it allows them when the environment contains no library_items other
than those of the predefined environment.
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12