Pragma Reviewable (GNAT Reference Manual)

### 2.162 Pragma Reviewable ¶

Syntax:

    pragma Reviewable;

This pragma is an RM-defined standard pragma, but has no effect on the program being compiled, or on the code generated for the program.

To obtain the required output specified in RM H.3.1, the compiler must be run with various special switches as follows:

- ‘Where compiler-generated run-time checks remain’

  The switch ‘-gnatGL’ may be used to list the expanded code in pseudo-Ada form. Runtime checks show up in the listing either as explicit checks or operators marked with {} to indicate a check is present.

- ‘An identification of known exceptions at compile time’

  If the program is compiled with ‘-gnatwa’, the compiler warning messages will indicate all cases where the compiler detects that an exception is certain to occur at run time.

- ‘Possible reads of uninitialized variables’

  The compiler warns of many such cases, but its output is incomplete.

A supplemental static analysis tool may be used to obtain a comprehensive list of all possible points at which uninitialized data may be read.

- ‘Where run-time support routines are implicitly invoked’

  In the output from ‘-gnatGL’, run-time calls are explicitly listed as calls to the relevant run-time routine.

- ‘Object code listing’

  This may be obtained either by using the ‘-S’ switch, or the objdump utility.

- ‘Constructs known to be erroneous at compile time’

  These are identified by warnings issued by the compiler (use ‘-gnatwa’).

- ‘Stack usage information’

  Static stack usage data (maximum per-subprogram) can be obtained via the ‘-fstack-usage’ switch to the compiler. Dynamic stack usage data (per task) can be obtained via the ‘-u’ switch to gnatbind

- ‘Object code listing of entire partition’

  This can be obtained by compiling the partition with ‘-S’, or by applying objdump to all the object files that are part of the partition.

- ‘A description of the run-time model’

  The full sources of the run-time are available, and the documentation of these routines describes how these run-time routines interface to the underlying operating system facilities.

- ‘Control and data-flow information’

A supplemental static analysis tool may be used to obtain complete control and data-flow information, as well as comprehensive messages identifying possible problems based on this information.