Implementation Defined Restrictions
* Partition-Wide Restrictions::
-* Unit-Level Restrictions::
+* Program Unit Level Restrictions::
Partition-Wide Restrictions
* No_Nested_Finalization::
* No_Protected_Type_Allocators::
* No_Protected_Types::
+* No_Recursion::
+* No_Reentrancy::
* No_Relative_Delay::
* No_Requeue_Statements::
* No_Secondary_Stack::
* Static_Priorities::
* Static_Storage_Size::
-Unit-Level Restrictions
+Program Unit Level Restrictions
* No_Elaboration_Code::
* No_Entry_Queue::
* No_Implementation_Units::
* No_Implicit_Aliasing::
* No_Obsolescent_Features::
-* No_Recursion::
-* No_Reentrancy::
* No_Wide_Characters::
* SPARK::
* No_Task_Termination::
No task can be queued on a protected entry.
@item Max_Protected_Entries => 1
@item Max_Task_Entries => 0
-No rendezvous are possible.
+No rendezvous statements are allowed.
@item No_Abort_Statements
@item No_Dynamic_Attachment
@item No_Dynamic_Priorities
@menu
* Partition-Wide Restrictions::
-* Unit-Level Restrictions::
+* Program Unit Level Restrictions::
@end menu
@node Partition-Wide Restrictions
* No_Nested_Finalization::
* No_Protected_Type_Allocators::
* No_Protected_Types::
+* No_Recursion::
+* No_Reentrancy::
* No_Relative_Delay::
* No_Requeue_Statements::
* No_Secondary_Stack::
@unnumberedsubsec No_Exception_Propagation
@findex No_Exception_Propagation
[GNAT] This restriction guarantees that exceptions are never propagated
-to an outer subprogram scope). The only case in which an exception may
+to an outer subprogram scope. The only case in which an exception may
be raised is when the handler is statically in the same subprogram, so
that the effect of a raise is essentially like a goto statement. Any
other raise statement (implicit or explicit) will be considered
unhandled. Exception handlers are allowed, but may not contain an
-exception occurrence identifier (exception choice). In addition use of
+exception occurrence identifier (exception choice). In addition, use of
the package GNAT.Current_Exception is not permitted, and reraise
statements (raise with no operand) are not permitted.
[RM H.4] This restriction ensures at compile time that there are no
declarations of protected types or protected objects.
+@node No_Recursion
+@unnumberedsubsec No_Recursion
+@findex No_Recursion
+[RM H.4] A program execution is erroneous if a subprogram is invoked as
+part of its execution.
+
+@node No_Reentrancy
+@unnumberedsubsec No_Reentrancy
+@findex No_Reentrancy
+[RM H.4] A program execution is erroneous if a subprogram is executed by
+two tasks at the same time.
+
@node No_Relative_Delay
@unnumberedsubsec No_Relative_Delay
@findex No_Relative_Delay
[GNAT] This restriction ensures at compile time that any expression appearing
in a Storage_Size pragma or attribute definition clause is static.
-@node Unit-Level Restrictions
-@section Unit-Level Restrictions
+@node Program Unit Level Restrictions
+@section Program Unit Level Restrictions
@noindent
The second set of restriction identifiers
* No_Implementation_Units::
* No_Implicit_Aliasing::
* No_Obsolescent_Features::
-* No_Recursion::
-* No_Reentrancy::
* No_Wide_Characters::
* SPARK::
* No_Task_Termination::
[RM 13.12.1] This restriction checks at compile time that no obsolescent
features are used, as defined in Annex J of the Ada Reference Manual.
-@node No_Recursion
-@unnumberedsubsec No_Recursion
-@findex No_Recursion
-[RM H.4] A program execution is erroneous if a subprogram is invoked as
-part of its execution.
-
-@node No_Reentrancy
-@unnumberedsubsec No_Reentrancy
-@findex No_Reentrancy
-[RM H.4] A program execution is erroneous if a subprogram is executed by
-two tasks at the same time.
-
@node No_Wide_Characters
@unnumberedsubsec No_Wide_Characters
@findex No_Wide_Characters