[Home] [Prev] [Next] [Index]

13.12 Pragma Restrictions

13.12 Pragma Restrictions

1
[A pragma Restrictions expresses the user's intent to abide by certain restrictions. This may facilitate the construction of simpler run-time environments.]

Syntax

2
The form of a pragma Restrictions is as follows:

3
pragma Restrictions(restriction{, restriction});

4
restriction ::= restriction_identifier
    | restriction_parameter_identifier => expression

Name Resolution Rules

5
Unless otherwise specified for a particular restriction, the expression is expected to be of any integer type.

Legality Rules

6
Unless otherwise specified for a particular restriction, the expression shall be static, and its value shall be nonnegative.

Static Semantics

7
The set of restrictions is implementation defined.

7.a
Implementation defined:  The set of restrictions allowed in a pragma Restrictions.

Post-Compilation Rules

8
A pragma Restrictions is a configuration pragma; unless otherwise specified for a particular restriction, a partition shall obey the restriction if a pragma Restrictions applies to any compilation unit included in the partition.

Implementation Permissions

9
An implementation may place limitations on the values of the expression that are supported, and limitations on the supported combinations of restrictions. The consequences of violating such limitations are implementation defined.

9.a
Implementation defined:  The consequences of violating limitations on Restrictions pragmas.

9.b
Ramification: Such limitations may be enforced at compile time or at run time. Alternatively, the implementation is allowed to declare violations of the restrictions to be erroneous, and not enforce them at all.

NOTES

10 28
Restrictions intended to facilitate the construction of efficient tasking run-time systems are defined in D.7. Safety- and security-related restrictions are defined in H.4.

11 29
An implementation has to enforce the restrictions in cases where enforcement is required, even if it chooses not to take advantage of the restrictions in terms of efficiency.

11.a
Discussion:  It is not the intent that an implementation will support a different run-time system for every possible combination of restrictions. An implementation might support only two run-time systems, and document a set of restrictions that is sufficient to allow use of the more efficient and safe one.

Extensions to Ada 83

11.b
Pragma Restrictions is new to Ada 9X.



[Home] [Prev] [Next] [Index]

documentation@rational.com
Copyright © 1993-1998, Rational Software Corporation.   All rights reserved.