Pragma Reviewable
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Contents Index Search Previous Next

# 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 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.

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).
NOTES
21
6 The order of elaboration of library units will be documented even in the absence of pragma Reviewable (see 10.2).

Contents Index Search Previous Next Legal