H.3.1 Pragma Reviewable
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.
The form of
is as follows:
is a configuration pragma. It applies to all compilation_unit
included in a partition.
shall provide the following information for any compilation unit to which
such a pragma applies:
- Where compiler-generated run-time
- 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);
- For each read of a scalar object,
an identification of the read as either “known to be initialized,”
or “possibly uninitialized,” independent of whether pragma
- Where run-time support routines are
- An object
code listing, including:
- Machine instructions, with relative
- Where each data object is stored
during its lifetime;
- Correspondence with the source
program, including an identification of the code produced per declaration
and per statement.
- An identification of each construct
for which the implementation detects the possibility of erroneous execution;
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.
shall provide the following information for any partition to which the
- 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;
- 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.
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.
Object code listings should be provided both in a
symbolic format and also in an appropriate numeric format (such as hexadecimal
6 The order of elaboration of library units
will be documented even in the absence of pragma
Reviewable (see 10.2