Ada Reference Manual (Ada 2022) — Legal Information

# H.3.1 Pragma Reviewable

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.

#### Syntax

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 runtime 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 runtime checks has been suppressed);
8/2
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 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.
18.1
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
NOTE The order of elaboration of library units will be documented even in the absence of pragma Reviewable (see 10.2).

Ada 2005 and 2012 Editions sponsored in part by Ada-Europe