Ada Reference ManualLegal Information
Contents   Index   References   Search   Previous   Next 

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/2
restriction ::= restriction_identifier
    | restriction_parameter_identifier => restriction_parameter_argument
4.1/2
restriction_parameter_argument ::= name | 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/2
The set of restrictions is implementation defined.

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.
8.1/1
  For the purpose of checking whether a partition contains constructs that violate any restriction (unless specified otherwise for a particular restriction):
8.2/1
8.3/1
8.4/1

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.1/1
  An implementation is permitted to omit restriction checks for code that is recognized at compile time to be unreachable and for which no code is generated.
9.2/1
  Whenever enforcement of a restriction is not required prior to execution, an implementation may nevertheless enforce the restriction prior to execution of a partition to which the restriction applies, provided that every execution of the partition would violate the restriction.
NOTES
10/2
29  Restrictions intended to facilitate the construction of efficient tasking run-time systems are defined in D.7. Restrictions intended for use when constructing high integrity systems are defined in H.4.
11
30  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. 

Contents   Index   References   Search   Previous   Next 
Ada-Europe Sponsored by Ada-Europe