- (1)
- This pragma directs the implementation to provide information to
facilitate analysis and review of a program's object code, in particular to
allow determination of execution time and storage usage and to identify the
correspondence between the source and object programs.
- (2)
- The form of a pragma Reviewable is as follows:
(3)
pragma Reviewable;
Post-Compilation Rules
- (4)
- Pragma Reviewable is a configuration pragma. It applies to all
compilation_units included in a partition.
Implementation Requirements
- (5)
- The implementation shall provide the following information for any
compilation unit to which such a pragma applies:
- (6)
- Where compiler-generated run-time checks remain;
- (7)
- An identification of any construct with a language-defined check
that is recognized prior to run time as certain to fail if
executed (even if the generation of run-time checks has been
suppressed);
- (8)
- For each reference to a scalar object, an identification of the
reference as either ``known to be initialized,'' or ``possibly
uninitialized,'' independent of whether pragma Normalize_Scalars
applies;
- (9)
- Where run-time support routines are implicitly invoked;
- (10)
- An object code listing, including:
- (11)
- Machine instructions, with relative offsets;
- (12)
- Where each data object is stored during its lifetime;
- (13)
- Correspondence with the source program, including an
identification of the code produced per declaration and
per statement.
- (14)
- An identification of each construct for which the implementation
detects the possibility of erroneous execution;
- (15)
- For each subprogram, block, task, or other construct implemented
by reserving and subsequently freeing an area on a run-time
stack, an identification of the length of the fixed-size portion
of the area and an indication of whether the non-fixed size
portion is reserved on the stack or in a dynamically-managed
storage region.
- (16)
- The implementation shall provide the following information for any
partition to which the pragma applies:
- (17)
- An object code listing of the entire partition, including
initialization and finalization code as well as run-time system
components, and with an identification of those instructions and
data that will be relocated at load time;
- (18)
- A description of the run-time model relevant to the partition.
- The implementation shall provide control- and data-flow information, both
within each compilation unit and across the compilation units of the
partition.
Implementation Advice
- (19)
- The implementation should provide the above information in both a
human-readable and machine-readable form, and should document the latter so
as to ease further processing by automated tools.
- (20)
- Object code listings should be provided both in a symbolic format and
also in an appropriate numeric format (such as hexadecimal or octal).
-
- (21)
(6) The order of elaboration of library units will be documented even in
the absence of pragma Reviewable (see 10.2).
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12