Commit 637535d7 by Arnaud Charlet

gnat_rm.texi, [...]: Update documentation.

        * gnat_rm.texi, gnat_ugn.texi,
        doc/gnat_ugn/platform_specific_information.rst,
        doc/gnat_ugn/gnat_and_program_execution.rst,
        doc/gnat_ugn/the_gnat_compilation_model.rst,
        doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation.

From-SVN: r230232
parent 53044824
......@@ -4456,7 +4456,7 @@ the effect is identical to the following Ada 2012 code:
Dynamic_Predicate => F(Q) or G(Q);
Note that there is are no pragmas `Dynamic_Predicate`
Note that there are no pragmas `Dynamic_Predicate`
or `Static_Predicate`. That is
because these pragmas would affect legality and semantics of
the program and thus do not have a neutral effect if ignored.
......@@ -4471,6 +4471,23 @@ fundamentally changed (for example a membership test
defined for subtype B). When following this approach, the
use of predicates should be avoided.
Pragma Predicate_Failure
========================
Syntax:
::
pragma Predicate_Failure
([Entity =>] type_LOCAL_NAME,
[Message =>] String_Expression);
The `Predicate_Failure` pragma is intended to be an exact replacement for
the language-defined
`Predicate_Failure` aspect, and shares its restrictions and semantics.
Pragma Preelaborable_Initialization
===================================
......
......@@ -261,7 +261,7 @@ The following example indicates constructs that violate this restriction.
null;
end if;
end Example;
No_Dynamic_Attachment
---------------------
......@@ -319,7 +319,7 @@ must define with the following profile:
(Source_Location : System.Address; Line : Integer);
pragma Export (C, Last_Chance_Handler,
"__gnat_last_chance_handler");
The parameter is a C null-terminated string representing a message to be
associated with the exception (typically the source location of the raise
......@@ -367,19 +367,19 @@ chapter 7.6 of the Ada 2005 RM as well as all form of code generation
performed by the compiler to support these features. The following types
are no longer considered controlled when this restriction is in effect:
*
*
`Ada.Finalization.Controlled`
*
*
`Ada.Finalization.Limited_Controlled`
*
*
Derivations from `Controlled` or `Limited_Controlled`
*
*
Class-wide types
*
*
Protected types
*
*
Task types
*
*
Array and record types with controlled components
The compiler no longer generates code to initialize, finalize or adjust an
......@@ -844,7 +844,7 @@ example, if the source contains a declaration:
.. code-block:: ada
Val : constant Integer := X;
where X is not a static constant, it may be possible, depending
on complex optimization circuitry, for the compiler to figure
......@@ -857,6 +857,21 @@ Note that this the implementation of this restriction requires full
code generation. If it is used in conjunction with "semantics only"
checking, then some cases of violations may be missed.
No_Dynamic_Sized_Objects
--------------
.. index:: No_Dynamic_Sized_Objects
[GNAT] This restriction disallows certain constructs that might lead to the
creation of dynamic-sized composite objects (or array or discriminated type).
An array subtype indication is illegal if the bounds are not static
or references to discriminants of an enclosing type.
A discriminated subtype indication is illegal if the type has
discriminant-dependent array components or a variant part, and the
discriminants are not static. In addition, array and record aggregates are
illegal in corresponding cases. Note that this restriction does not forbid
access discriminants. It is often a good idea to combine this restriction
with No_Secondary_Stack.
No_Entry_Queue
--------------
.. index:: No_Entry_Queue
......@@ -960,7 +975,7 @@ SPARK restriction have the form:
violation of restriction "SPARK_05" at <source-location>
<error message>
.. index:: SPARK
......@@ -1097,4 +1112,3 @@ currently checked by the SPARK_05 restriction:
Note that if a unit is compiled in Ada 95 mode with the SPARK restriction,
violations will be reported for constructs forbidden in SPARK 95,
instead of SPARK 2005.
......@@ -3884,7 +3884,7 @@ execution of this erroneous program:
it to obtain accurate dynamic memory usage history at a minimal cost to the
execution speed. Note however, that `gnatmem` is not supported on all
platforms (currently, it is supported on AIX, HP-UX, GNU/Linux, Solaris and
Windows NT/2000/XP (x86).
Windows.
The `gnatmem` command has the form
......
......@@ -3665,7 +3665,7 @@ Convention identifiers are recognized by GNAT:
.. index:: Convention Stdcall
*Stdcall*
This is relevant only to Windows XP/2000/NT implementations of GNAT,
This is relevant only to Windows implementations of GNAT,
and specifies that the `Stdcall` calling sequence will be used,
as defined by the NT API. Nevertheless, to ease building
cross-platform bindings this convention will be handled as a `C` calling
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment