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. 
Syntax
The form of a 
pragma 
Reviewable is as follows: 
 
Post-Compilation Rules
Pragma Reviewable 
is a configuration pragma. It applies to all 
compilation_units 
included in a partition. 
 
Implementation Requirements
The implementation 
shall provide the following information for any compilation unit to which 
such a pragma applies: 
Where compiler-generated run-time checks remain; 
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 Normalize_Scalars 
applies; 
Where run-time support routines are implicitly 
invoked; 
An object code listing, 
including: 
Machine instructions, with relative 
offsets; 
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; 
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. 
The implementation 
shall provide the following information for any partition to which the 
pragma applies: 
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. 
Implementation Advice
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 
or octal). 
6  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