gnat_rm.texi, [...]: Regenerate.
2015-10-23 Arnaud Charlet <charlet@adacore.com> * gnat_rm.texi, gnat_ugn.texi: Regenerate. * doc/share/ada_pygments.py, doc/gnat_ugn/gnat_project_manager.rst, doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/gnat_and_program_execution.rst, doc/gnat_rm/implementation_defined_attributes.rst, doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, doc/gnat_rm/representation_clauses_and_pragmas.rst, doc/gnat_rm/implementation_defined_pragmas.rst, doc/gnat_rm/about_this_guide.rst, doc/gnat_rm/implementation_of_ada_2012_features.rst, doc/gnat_rm/implementation_of_specific_ada_features.rst, doc/gnat_rm/implementation_defined_aspects.rst, doc/gnat_rm/implementation_advice.rst: Update documentation. From-SVN: r229254
This commit is contained in:
parent
879ac954ef
commit
abcb651bac
|
@ -1,3 +1,19 @@
|
|||
2015-10-23 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* gnat_rm.texi, gnat_ugn.texi: Regenerate.
|
||||
* doc/share/ada_pygments.py, doc/gnat_ugn/gnat_project_manager.rst,
|
||||
doc/gnat_ugn/building_executable_programs_with_gnat.rst,
|
||||
doc/gnat_ugn/gnat_and_program_execution.rst,
|
||||
doc/gnat_rm/implementation_defined_attributes.rst,
|
||||
doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
|
||||
doc/gnat_rm/representation_clauses_and_pragmas.rst,
|
||||
doc/gnat_rm/implementation_defined_pragmas.rst,
|
||||
doc/gnat_rm/about_this_guide.rst,
|
||||
doc/gnat_rm/implementation_of_ada_2012_features.rst,
|
||||
doc/gnat_rm/implementation_of_specific_ada_features.rst,
|
||||
doc/gnat_rm/implementation_defined_aspects.rst,
|
||||
doc/gnat_rm/implementation_advice.rst: Update documentation.
|
||||
|
||||
2015-10-23 Hristian Kirtchev <kirtchev@adacore.com>
|
||||
|
||||
* contracts.ads, contracts.adb: New unit.
|
||||
|
|
|
@ -29,6 +29,7 @@ different compilers on different platforms.
|
|||
However, since Ada is designed to be used in a
|
||||
wide variety of applications, it also contains a number of system
|
||||
dependent features to be used in interfacing to the external world.
|
||||
|
||||
.. index:: Implementation-dependent features
|
||||
|
||||
.. index:: Portability
|
||||
|
|
|
@ -294,8 +294,8 @@ RM 13.1 (21-24): Representation Clauses
|
|||
qualified as follows:
|
||||
|
||||
An implementation need not support representation items containing
|
||||
non-static expressions, except that an implementation should support a
|
||||
representation item for a given entity if each non-static expression in
|
||||
nonstatic expressions, except that an implementation should support a
|
||||
representation item for a given entity if each nonstatic expression in
|
||||
the representation item is a name that statically denotes a constant
|
||||
declared before the entity."
|
||||
|
||||
|
@ -318,7 +318,7 @@ For example:
|
|||
constraints on the subtype and its composite subcomponents (if any) are
|
||||
all static constraints."
|
||||
|
||||
Followed. Size Clauses are not permitted on non-static components, as
|
||||
Followed. Size Clauses are not permitted on nonstatic components, as
|
||||
described above.
|
||||
|
||||
|
||||
|
|
|
@ -98,6 +98,12 @@ Aspect Async_Writers
|
|||
|
||||
This boolean aspect is equivalent to pragma `Async_Writers`.
|
||||
|
||||
Aspect Constant_After_Elaboration
|
||||
=================================
|
||||
.. index:: Constant_After_Elaboration
|
||||
|
||||
This aspect is equivalent to pragma `Constant_After_Elaboration`.
|
||||
|
||||
Aspect Contract_Cases
|
||||
=====================
|
||||
.. index:: Contract_Cases
|
||||
|
@ -112,6 +118,12 @@ Aspect Depends
|
|||
|
||||
This aspect is equivalent to pragma `Depends`.
|
||||
|
||||
Aspect Default_Initial_Condition
|
||||
================================
|
||||
.. index:: Default_Initial_Condition
|
||||
|
||||
This aspect is equivalent to pragma `Default_Initial_Condition`.
|
||||
|
||||
Aspect Dimension
|
||||
================
|
||||
.. index:: Dimension
|
||||
|
@ -223,12 +235,24 @@ Aspect Effective_Writes
|
|||
|
||||
This aspect is equivalent to pragma `Effective_Writes`.
|
||||
|
||||
Aspect Extensions_Visible
|
||||
=========================
|
||||
.. index:: Extensions_Visible
|
||||
|
||||
This aspect is equivalent to pragma `Extensions_Visible`.
|
||||
|
||||
Aspect Favor_Top_Level
|
||||
======================
|
||||
.. index:: Favor_Top_Level
|
||||
|
||||
This boolean aspect is equivalent to pragma `Favor_Top_Level`.
|
||||
|
||||
Aspect Ghost
|
||||
=============
|
||||
.. index:: Ghost
|
||||
|
||||
This aspect is equivalent to pragma `Ghost`.
|
||||
|
||||
Aspect Global
|
||||
=============
|
||||
.. index:: Global
|
||||
|
@ -527,6 +551,12 @@ Aspect Volatile_Full_Access
|
|||
|
||||
This boolean aspect is equivalent to pragma `Volatile_Full_Access`.
|
||||
|
||||
Aspect Volatile_Function
|
||||
===========================
|
||||
.. index:: Volatile_Function
|
||||
|
||||
This boolean aspect is equivalent to pragma `Volatile_Function`.
|
||||
|
||||
Aspect Warnings
|
||||
===============
|
||||
.. index:: Warnings
|
||||
|
|
|
@ -44,7 +44,7 @@ Attribute Address_Size
|
|||
prefix) is a static constant giving the number of bits in an
|
||||
`Address`. It is the same value as System.Address'Size,
|
||||
but has the advantage of being static, while a direct
|
||||
reference to System.Address'Size is non-static because Address
|
||||
reference to System.Address'Size is nonstatic because Address
|
||||
is a private type.
|
||||
|
||||
Attribute Asm_Input
|
||||
|
@ -233,7 +233,7 @@ Attribute Descriptor_Size
|
|||
|
||||
.. index:: Descriptor_Size
|
||||
|
||||
Non-static attribute `Descriptor_Size` returns the size in bits of the
|
||||
Nonstatic attribute `Descriptor_Size` returns the size in bits of the
|
||||
descriptor allocated for a type. The result is non-zero only for unconstrained
|
||||
array types and the returned value is of type universal integer. In GNAT, an
|
||||
array descriptor contains bounds information and is located immediately before
|
||||
|
@ -760,7 +760,7 @@ Attribute Passed_By_Reference
|
|||
a value of type `Boolean` value that is `True` if the type is
|
||||
normally passed by reference and `False` if the type is normally
|
||||
passed by copy in calls. For scalar types, the result is always `False`
|
||||
and is static. For non-scalar types, the result is non-static.
|
||||
and is static. For non-scalar types, the result is nonstatic.
|
||||
|
||||
Attribute Pool_Address
|
||||
======================
|
||||
|
@ -1145,7 +1145,7 @@ a static expression, then the result of the attribute is a
|
|||
static expression. This means that such an expression can be
|
||||
used in contexts (e.g., preelaborable packages) which require a
|
||||
static expression and where the function call could not be used
|
||||
(since the function call is always non-static, even if its
|
||||
(since the function call is always nonstatic, even if its
|
||||
argument is static). The argument must be in the range
|
||||
-(2**(m-1) .. 2**m-1, where m is the memory size
|
||||
(typically 32 or 64). Negative values are intepreted in a
|
||||
|
@ -1203,17 +1203,6 @@ Attribute TypeCode
|
|||
This internal attribute is used for the generation of remote subprogram
|
||||
stubs in the context of the Distributed Systems Annex.
|
||||
|
||||
Attribute UET_Address
|
||||
=====================
|
||||
.. index:: UET_Address
|
||||
|
||||
The `UET_Address` attribute can only be used for a prefix which
|
||||
denotes a library package. It yields the address of the unit exception
|
||||
table when zero cost exception handling is used. This attribute is
|
||||
intended only for use within the GNAT implementation. See the unit
|
||||
`Ada.Exceptions` in files :file:`a-except.ads` and :file:`a-except.adb`
|
||||
for details on how this attribute is used in the implementation.
|
||||
|
||||
Attribute Unconstrained_Array
|
||||
=============================
|
||||
.. index:: Unconstrained_Array
|
||||
|
|
|
@ -1057,6 +1057,12 @@ If the alignment for a record or array type is not specified (using
|
|||
pragma `Pack`, pragma `Component_Alignment`, or a record rep
|
||||
clause), the GNAT uses the default alignment as described previously.
|
||||
|
||||
Pragma Constant_After_Elaboration
|
||||
=================================
|
||||
|
||||
For the description of this pragma, see SPARK 2014 Reference Manual,
|
||||
section 3.3.1.
|
||||
|
||||
Pragma Contract_Cases
|
||||
=====================
|
||||
.. index:: Contract cases
|
||||
|
@ -1310,6 +1316,12 @@ This pragma is standard in Ada 2012, but is available in all earlier
|
|||
versions of Ada as an implementation-defined pragma.
|
||||
See Ada 2012 Reference Manual for details.
|
||||
|
||||
Pragma Default_Initial_Condition
|
||||
================================
|
||||
|
||||
For the description of this pragma, see SPARK 2014 Reference Manual,
|
||||
section 7.3.3.
|
||||
|
||||
Pragma Debug
|
||||
============
|
||||
|
||||
|
@ -1962,6 +1974,12 @@ of GNAT specific extensions are recognized as follows:
|
|||
is constrained.
|
||||
|
||||
|
||||
Pragma Extensions_Visible
|
||||
=========================
|
||||
|
||||
For the description of this pragma, see SPARK 2014 Reference Manual,
|
||||
section 6.1.7.
|
||||
|
||||
Pragma External
|
||||
===============
|
||||
|
||||
|
@ -2158,6 +2176,12 @@ be `IEEE_Float` to specify the use of IEEE format, as follows:
|
|||
*
|
||||
No other value of digits is permitted.
|
||||
|
||||
Pragma Ghost
|
||||
============
|
||||
|
||||
For the description of this pragma, see SPARK 2014 Reference Manual,
|
||||
section 6.9.
|
||||
|
||||
Pragma Global
|
||||
=============
|
||||
|
||||
|
@ -5376,7 +5400,7 @@ Pragma Source_File_Name_Project
|
|||
===============================
|
||||
|
||||
This pragma has the same syntax and semantics as pragma Source_File_Name.
|
||||
It is only allowed as a stand alone configuration pragma.
|
||||
It is only allowed as a stand-alone configuration pragma.
|
||||
It cannot appear after a :ref:`Pragma_Source_File_Name`, and
|
||||
most importantly, once pragma Source_File_Name_Project appears,
|
||||
no further Source_File_Name pragmas are allowed.
|
||||
|
@ -6568,6 +6592,12 @@ the same object.
|
|||
It is not permissible to specify `Volatile_Full_Access` for a composite
|
||||
(record or array) type or object that has at least one `Aliased` component.
|
||||
|
||||
Pragma Volatile_Function
|
||||
========================
|
||||
|
||||
For the description of this pragma, see SPARK 2014 Reference Manual,
|
||||
section 7.1.2.
|
||||
|
||||
Pragma Warning_As_Error
|
||||
=======================
|
||||
|
||||
|
|
|
@ -422,7 +422,7 @@ Supported Aspect Source
|
|||
* *AI-0220 Needed components for aggregates (0000-00-00)*
|
||||
|
||||
This AI addresses a wording problem in the RM that appears to permit some
|
||||
complex cases of aggregates with non-static discriminants. GNAT has always
|
||||
complex cases of aggregates with nonstatic discriminants. GNAT has always
|
||||
implemented the intended semantics.
|
||||
|
||||
RM References: 4.03.01 (17)
|
||||
|
|
|
@ -17,17 +17,17 @@ Machine Code Insertions
|
|||
Package `Machine_Code` provides machine code support as described
|
||||
in the Ada Reference Manual in two separate forms:
|
||||
|
||||
*
|
||||
*
|
||||
Machine code statements, consisting of qualified expressions that
|
||||
fit the requirements of RM section 13.8.
|
||||
*
|
||||
*
|
||||
An intrinsic callable procedure, providing an alternative mechanism of
|
||||
including machine instructions in a subprogram.
|
||||
|
||||
The two features are similar, and both are closely related to the mechanism
|
||||
provided by the asm instruction in the GNU C compiler. Full understanding
|
||||
and use of the facilities in this package requires understanding the asm
|
||||
instruction, see the section on Extended Asm in
|
||||
instruction, see the section on Extended Asm in
|
||||
:title:`Using_the_GNU_Compiler_Collection_(GCC)`.
|
||||
|
||||
Calls to the function `Asm` and the procedure `Asm` have identical
|
||||
|
@ -40,7 +40,7 @@ Consider this C `asm` instruction:
|
|||
::
|
||||
|
||||
asm ("fsinx %1 %0" : "=f" (result) : "f" (angle));
|
||||
|
||||
|
||||
|
||||
The equivalent can be written for GNAT as:
|
||||
|
||||
|
@ -49,7 +49,7 @@ The equivalent can be written for GNAT as:
|
|||
Asm ("fsinx %1 %0",
|
||||
My_Float'Asm_Output ("=f", result),
|
||||
My_Float'Asm_Input ("f", angle));
|
||||
|
||||
|
||||
|
||||
The first argument to `Asm` is the assembler template, and is
|
||||
identical to what is used in GNU C. This string must be a static
|
||||
|
@ -62,7 +62,7 @@ The `Asm_Output` attribute denotes a function that takes two
|
|||
parameters. The first is a string, the second is the name of a variable
|
||||
of the type designated by the attribute prefix. The first (string)
|
||||
argument is required to be a static expression and designates the
|
||||
constraint (see the section on Constraints in
|
||||
constraint (see the section on Constraints in
|
||||
:title:`Using_the_GNU_Compiler_Collection_(GCC)`)
|
||||
for the parameter; e.g., what kind of register is required. The second
|
||||
argument is the variable to be written or updated with the
|
||||
|
@ -129,7 +129,7 @@ appear as aggregates of the form:
|
|||
|
||||
Asm_Insn'(Asm (...));
|
||||
Asm_Insn'(Asm_Volatile (...));
|
||||
|
||||
|
||||
In accordance with RM rules, such code statements are allowed only
|
||||
within subprograms whose entire body consists of such statements. It is
|
||||
not permissible to intermix such statements with other Ada statements.
|
||||
|
@ -165,7 +165,7 @@ normal rules for use of positional and named arguments:
|
|||
|
||||
INPUT_OPERAND_ATTRIBUTE ::=
|
||||
SUBTYPE_MARK'Asm_Input (static_string_EXPRESSION, EXPRESSION)
|
||||
|
||||
|
||||
The identifiers `No_Input_Operands` and `No_Output_Operands`
|
||||
are declared in the package `Machine_Code` and must be referenced
|
||||
according to normal visibility rules. In particular if there is no
|
||||
|
@ -215,27 +215,28 @@ kernel. For example, in the case of VxWorks, one Ada task = one VxWorks task.
|
|||
In addition Ada task priorities map onto the underlying thread priorities.
|
||||
Mapping Ada tasks onto the underlying kernel threads has several advantages:
|
||||
|
||||
*
|
||||
*
|
||||
The underlying scheduler is used to schedule the Ada tasks. This
|
||||
makes Ada tasks as efficient as kernel threads from a scheduling
|
||||
standpoint.
|
||||
|
||||
*
|
||||
*
|
||||
Interaction with code written in C containing threads is eased
|
||||
since at the lowest level Ada tasks and C threads map onto the same
|
||||
underlying kernel concept.
|
||||
|
||||
*
|
||||
*
|
||||
When an Ada task is blocked during I/O the remaining Ada tasks are
|
||||
able to proceed.
|
||||
|
||||
*
|
||||
*
|
||||
On multiprocessor systems Ada tasks can execute in parallel.
|
||||
|
||||
Some threads libraries offer a mechanism to fork a new process, with the
|
||||
child process duplicating the threads from the parent.
|
||||
GNAT does not
|
||||
support this functionality when the parent contains more than one task.
|
||||
|
||||
.. index:: Forking a new process
|
||||
|
||||
.. _Ensuring_Compliance_with_the_Real-Time_Annex:
|
||||
|
@ -291,14 +292,14 @@ GNAT Implementation of Shared Passive Packages
|
|||
|
||||
.. index:: Shared passive packages
|
||||
|
||||
GNAT fully implements the pragma `Shared_Passive` for
|
||||
.. index:: pragma `Shared_Passive`
|
||||
|
||||
GNAT fully implements the :index:`pragma <pragma Shared_Passive>`
|
||||
`Shared_Passive` for
|
||||
the purpose of designating shared passive packages.
|
||||
This allows the use of passive partitions in the
|
||||
context described in the Ada Reference Manual; i.e., for communication
|
||||
between separate partitions of a distributed application using the
|
||||
features in Annex E.
|
||||
|
||||
.. index:: Annex E
|
||||
|
||||
.. index:: Distribution Systems Annex
|
||||
|
@ -348,7 +349,7 @@ will have the names:
|
|||
|
||||
/stemp/x.y
|
||||
/stemp/x.z
|
||||
|
||||
|
||||
|
||||
These files are created when a value is initially written to the object, and
|
||||
the files are retained until manually deleted. This provides the persistence
|
||||
|
@ -411,7 +412,7 @@ For the declarations:
|
|||
|
||||
type One_Dim is array (1..10) of integer;
|
||||
ar0 : constant One_Dim := (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
|
||||
|
||||
|
||||
|
||||
GNAT generates no executable code: the constant ar0 is placed in static memory.
|
||||
The same is true for constant aggregates with named associations:
|
||||
|
@ -421,7 +422,7 @@ The same is true for constant aggregates with named associations:
|
|||
|
||||
Cr1 : constant One_Dim := (4 => 16, 2 => 4, 3 => 9, 1 => 1, 5 .. 10 => 0);
|
||||
Cr3 : constant One_Dim := (others => 7777);
|
||||
|
||||
|
||||
|
||||
The same is true for multidimensional constant arrays such as:
|
||||
|
||||
|
@ -429,7 +430,7 @@ The same is true for multidimensional constant arrays such as:
|
|||
|
||||
type two_dim is array (1..3, 1..3) of integer;
|
||||
Unit : constant two_dim := ( (1,0,0), (0,1,0), (0,0,1));
|
||||
|
||||
|
||||
|
||||
The same is true for arrays of one-dimensional arrays: the following are
|
||||
static:
|
||||
|
@ -441,7 +442,7 @@ static:
|
|||
type ar_ar is array (1..3) of ar1b;
|
||||
None : constant ar1b := (others => false); -- fully static
|
||||
None2 : constant ar_ar := (1..3 => None); -- fully static
|
||||
|
||||
|
||||
|
||||
However, for multidimensional aggregates with named associations, GNAT will
|
||||
generate assignments and loops, even if all associations are static. The
|
||||
|
@ -453,7 +454,7 @@ individual component assignments for the second dimension:
|
|||
|
||||
Zero1: constant two_dim := (1..3 => (1..3 => 0));
|
||||
Zero2: constant two_dim := (others => (others => 0));
|
||||
|
||||
|
||||
|
||||
.. _Constant_aggregates_with_unconstrained_nominal_types:
|
||||
|
||||
|
@ -470,7 +471,7 @@ aggregate statically as well. No code is generated for the following:
|
|||
|
||||
type One_Unc is array (natural range <>) of integer;
|
||||
Cr_Unc : constant One_Unc := (12,24,36);
|
||||
|
||||
|
||||
|
||||
.. _Aggregates_with_static_bounds:
|
||||
|
||||
|
@ -487,7 +488,7 @@ object. The declarations
|
|||
|
||||
Cr_Var1 : One_Dim := (2, 5, 7, 11, 0, 0, 0, 0, 0, 0);
|
||||
Cr_Var2 : One_Dim := (others > -1);
|
||||
|
||||
|
||||
|
||||
generate the equivalent of
|
||||
|
||||
|
@ -502,11 +503,11 @@ generate the equivalent of
|
|||
for I in Cr_Var2'range loop
|
||||
Cr_Var2 (I) := -1;
|
||||
end loop;
|
||||
|
||||
|
||||
.. _Aggregates_with_non-static_bounds:
|
||||
|
||||
Aggregates with non-static bounds
|
||||
.. _Aggregates_with_nonstatic_bounds:
|
||||
|
||||
Aggregates with nonstatic bounds
|
||||
---------------------------------
|
||||
|
||||
If the bounds of the aggregate are not statically compatible with the bounds
|
||||
|
@ -529,7 +530,7 @@ component assignments. For example, consider the simple case:
|
|||
.. code-block:: ada
|
||||
|
||||
A := (A(2), A(1));
|
||||
|
||||
|
||||
|
||||
This cannot be converted into:
|
||||
|
||||
|
@ -538,16 +539,16 @@ This cannot be converted into:
|
|||
|
||||
A(1) := A(2);
|
||||
A(2) := A(1);
|
||||
|
||||
|
||||
|
||||
So the aggregate has to be built first in a separate location, and then
|
||||
copied into the target. GNAT recognizes simple cases where this intermediate
|
||||
step is not required, and the assignments can be performed in place, directly
|
||||
into the target. The following sufficient criteria are applied:
|
||||
|
||||
*
|
||||
*
|
||||
The bounds of the aggregate are static, and the associations are static.
|
||||
*
|
||||
*
|
||||
The components of the aggregate are static constants, names of
|
||||
simple variables that are not renamings, or expressions not involving
|
||||
indexed components whose operands obey these rules.
|
||||
|
@ -575,7 +576,7 @@ constraint:
|
|||
end T;
|
||||
|
||||
Word : Rec;
|
||||
|
||||
|
||||
|
||||
Such an object is said to be *unconstrained*.
|
||||
The discriminant of the object
|
||||
|
@ -648,17 +649,15 @@ Strict Conformance to the Ada Reference Manual
|
|||
The dynamic semantics defined by the Ada Reference Manual impose a set of
|
||||
run-time checks to be generated. By default, the GNAT compiler will insert many
|
||||
run-time checks into the compiled code, including most of those required by the
|
||||
Ada Reference Manual. However, there are three checks that are not enabled
|
||||
in the default mode for efficiency reasons: arithmetic overflow checking for
|
||||
integer operations (including division by zero), checks for access before
|
||||
elaboration on subprogram calls, and stack overflow checking (most operating
|
||||
systems do not perform this check by default).
|
||||
Ada Reference Manual. However, there are two checks that are not enabled in
|
||||
the default mode for efficiency reasons: checks for access before elaboration
|
||||
on subprogram calls, and stack overflow checking (most operating systems do not
|
||||
perform this check by default).
|
||||
|
||||
Strict conformance to the Ada Reference Manual can be achieved by adding
|
||||
three compiler options for overflow checking for integer operations
|
||||
(*-gnato*), dynamic checks for access-before-elaboration on subprogram
|
||||
calls and generic instantiations (*-gnatE*), and stack overflow
|
||||
checking (*-fstack-check*).
|
||||
Strict conformance to the Ada Reference Manual can be achieved by adding two
|
||||
compiler options for dynamic checks for access-before-elaboration on subprogram
|
||||
calls and generic instantiations (*-gnatE*), and stack overflow checking
|
||||
(*-fstack-check*).
|
||||
|
||||
Note that the result of a floating point arithmetic operation in overflow and
|
||||
invalid situations, when the `Machine_Overflows` attribute of the result
|
||||
|
@ -668,4 +667,3 @@ machines that are not fully compliant with this standard, such as Alpha, the
|
|||
*-mieee* compiler flag must be used for achieving IEEE confirming
|
||||
behavior (although at the cost of a significant performance penalty), so
|
||||
infinite and NaN values are properly generated.
|
||||
|
||||
|
|
|
@ -1477,7 +1477,7 @@ as found in RM 13.1(22):
|
|||
a constant declared before the entity."
|
||||
|
||||
In practice this is applicable only to address clauses, since this is the
|
||||
only case in which a non-static expression is permitted by the syntax. As
|
||||
only case in which a nonstatic expression is permitted by the syntax. As
|
||||
the AARM notes in sections 13.1 (22.a-22.h):
|
||||
|
||||
22.a Reason: This is to avoid the following sort of thing:
|
||||
|
@ -1509,7 +1509,7 @@ the AARM notes in sections 13.1 (22.a-22.h):
|
|||
might be known at compile time anyway in many
|
||||
cases.
|
||||
|
||||
GNAT does indeed permit many additional cases of non-static expressions. In
|
||||
GNAT does indeed permit many additional cases of nonstatic expressions. In
|
||||
particular, if the type involved is elementary there are no restrictions
|
||||
(since in this case, holding a temporary copy of the initialization value,
|
||||
if one is present, is inexpensive). In addition, if there is no implicit or
|
||||
|
@ -1524,7 +1524,7 @@ only the case where all three of these conditions hold:
|
|||
Note that access values are always implicitly initialized.
|
||||
|
||||
*
|
||||
The address value is non-static. Here GNAT is more permissive than the
|
||||
The address value is nonstatic. Here GNAT is more permissive than the
|
||||
RM, and allows the address value to be the address of a previously declared
|
||||
stand-alone variable, as long as it does not itself have an address clause.
|
||||
|
||||
|
@ -1537,9 +1537,9 @@ only the case where all three of these conditions hold:
|
|||
However, the prefix of the address clause cannot be an array component, or
|
||||
a component of a discriminated record.
|
||||
|
||||
As noted above in section 22.h, address values are typically non-static. In
|
||||
As noted above in section 22.h, address values are typically nonstatic. In
|
||||
particular the To_Address function, even if applied to a literal value, is
|
||||
a non-static function call. To avoid this minor annoyance, GNAT provides
|
||||
a nonstatic function call. To avoid this minor annoyance, GNAT provides
|
||||
the implementation defined attribute 'To_Address. The following two
|
||||
expressions have identical values:
|
||||
|
||||
|
|
|
@ -459,6 +459,19 @@ intermediate temporary, and without generating a loop to initialize individual
|
|||
components. Otherwise, a loop is created for arrays larger than about 5000
|
||||
scalar components.
|
||||
|
||||
No_Implicit_Protected_Object_Allocations
|
||||
----------------------------------------
|
||||
.. index: No_Implicit_Protected_Object_Allocations
|
||||
|
||||
[GNAT] No constructs are allowed to cause implicit heap allocation of a
|
||||
protected object.
|
||||
|
||||
No_Implicit_Task_Allocations
|
||||
----------------------------
|
||||
.. index: No_Implicit_Task_Allocations
|
||||
|
||||
[GNAT] No constructs are allowed to cause implicit heap allocation of a task.
|
||||
|
||||
No_Initialize_Scalars
|
||||
---------------------
|
||||
.. index:: No_Initialize_Scalars
|
||||
|
@ -666,6 +679,15 @@ No_Task_Allocators
|
|||
[RM D.7] There are no allocators for task types
|
||||
or types containing task subcomponents.
|
||||
|
||||
No_Task_At_Interrupt_Priority
|
||||
-----------------------------
|
||||
.. index:: No_Task_At_Interrupt_Priority
|
||||
|
||||
[GNAT] This restriction ensures at compile time that there is no
|
||||
Interrupt_Priority aspect or pragma for a task or a task type. As
|
||||
a consequence, the tasks are always created with a priority below
|
||||
that an interrupt priority.
|
||||
|
||||
No_Task_Attributes_Package
|
||||
--------------------------
|
||||
.. index:: No_Task_Attributes_Package
|
||||
|
@ -1003,7 +1025,7 @@ restriction is in force:
|
|||
* No object renaming
|
||||
* No use clause
|
||||
* Aggregates must be qualified
|
||||
* Non-static choice in array aggregates not allowed
|
||||
* Nonstatic choice in array aggregates not allowed
|
||||
* The only view conversions which are allowed as in-out parameters are conversions of a tagged type to an ancestor type
|
||||
* No mixing of positional and named association in aggregate, no multi choice
|
||||
* AND, OR and XOR for arrays only allowed when operands have same static bounds
|
||||
|
@ -1024,7 +1046,7 @@ restriction is in force:
|
|||
* Untagged record cannot be null
|
||||
* No class-wide operations
|
||||
* Initialization expressions must respect SPARK restrictions
|
||||
* Non-static ranges not allowed except in iteration schemes
|
||||
* Nonstatic ranges not allowed except in iteration schemes
|
||||
* String subtypes must have lower bound of 1
|
||||
* Subtype of Boolean cannot have constraint
|
||||
* At most one tagged type or extension per package
|
||||
|
|
|
@ -2953,7 +2953,7 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
.. index:: -gnatw.e (gcc)
|
||||
|
||||
:samp:`-gnatw.e`
|
||||
*Activate every optional warning*
|
||||
*Activate every optional warning.*
|
||||
|
||||
.. index:: Warnings, activate every optional warning
|
||||
|
||||
|
@ -3016,7 +3016,7 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
.. index:: -gnatw.g (gcc)
|
||||
|
||||
:samp:`-gnatw.g`
|
||||
*Warnings used for GNAT sources*
|
||||
*Warnings used for GNAT sources.*
|
||||
|
||||
This switch sets the warning categories that are used by the standard
|
||||
GNAT style. Currently this is equivalent to
|
||||
|
@ -3143,16 +3143,18 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
Second, the restriction does flag uses of package `ASCII`.
|
||||
|
||||
|
||||
.. index:: -gnatwJ (gcc)
|
||||
|
||||
:samp:`-gnatwJ`
|
||||
*Suppress warnings on obsolescent features (Annex J).*
|
||||
.. index:: -gnatwJ (gcc)
|
||||
|
||||
This switch disables warnings on use of obsolescent features.
|
||||
|
||||
|
||||
.. index:: -gnatwk (gcc)
|
||||
|
||||
:samp:`-gnatwk`
|
||||
*Activate warnings on variables that could be constants.*
|
||||
.. index:: -gnatwk (gcc)
|
||||
|
||||
This switch activates warnings for variables that are initialized but
|
||||
never modified, and then could be declared constants. The default is that
|
||||
|
@ -3724,7 +3726,7 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
.. index:: Warnings Off control
|
||||
|
||||
:samp:`-gnatw.w`
|
||||
*Activate warnings on Warnings Off pragmas*
|
||||
*Activate warnings on Warnings Off pragmas.*
|
||||
|
||||
This switch activates warnings for use of `pragma Warnings (Off, entity)`
|
||||
where either the pragma is entirely useless (because it suppresses no
|
||||
|
@ -3739,7 +3741,7 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
.. index:: -gnatw.W (gcc)
|
||||
|
||||
:samp:`-gnatw.W`
|
||||
*Suppress warnings on unnecessary Warnings Off pragmas*
|
||||
*Suppress warnings on unnecessary Warnings Off pragmas.*
|
||||
|
||||
This switch suppresses warnings for use of `pragma Warnings (Off, ...)`.
|
||||
|
||||
|
@ -3820,7 +3822,7 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
.. index:: Package spec needing body
|
||||
|
||||
:samp:`-gnatw.y`
|
||||
*Activate information messages for why package spec needs body*
|
||||
*Activate information messages for why package spec needs body.*
|
||||
|
||||
There are a number of cases in which a package spec needs a body.
|
||||
For example, the use of pragma Elaborate_Body, or the declaration
|
||||
|
@ -3835,7 +3837,7 @@ of the pragma in the :title:`GNAT_Reference_manual`).
|
|||
.. index:: No information messages for why package spec needs body
|
||||
|
||||
:samp:`-gnatw.Y`
|
||||
*Disable information messages for why package spec needs body*
|
||||
*Disable information messages for why package spec needs body.*
|
||||
|
||||
This switch suppresses the output of information messages showing why
|
||||
a package specification needs a body.
|
||||
|
@ -4188,7 +4190,7 @@ to the default checks required by Ada as described above.
|
|||
.. index:: -gnatVi (gcc)
|
||||
|
||||
:samp:`-gnatVi`
|
||||
*Validity checks for `in* mode parameters`
|
||||
*Validity checks for `in` mode parameters.*
|
||||
|
||||
Arguments for parameters of mode `in` are validity checked in function
|
||||
and procedure calls at the point of call.
|
||||
|
@ -4197,7 +4199,7 @@ to the default checks required by Ada as described above.
|
|||
.. index:: -gnatVm (gcc)
|
||||
|
||||
:samp:`-gnatVm`
|
||||
*Validity checks for `in out* mode parameters.`
|
||||
*Validity checks for `in out` mode parameters.*
|
||||
|
||||
Arguments for parameters of mode `in out` are validity checked in
|
||||
procedure calls at the point of call. The `'m'` here stands for
|
||||
|
@ -4220,9 +4222,10 @@ to the default checks required by Ada as described above.
|
|||
is used, it cancels any other *-gnatV* previously issued.
|
||||
|
||||
|
||||
.. index:: -gnatVo (gcc)
|
||||
|
||||
:samp:`-gnatVo`
|
||||
*Validity checks for operator and attribute operands.*
|
||||
.. index:: -gnatVo (gcc)
|
||||
|
||||
Arguments for predefined operators and attributes are validity checked.
|
||||
This includes all operators in package `Standard`,
|
||||
|
@ -4796,7 +4799,7 @@ checks to be performed. The following checks are defined:
|
|||
.. index:: -gnatyy (gcc)
|
||||
|
||||
:samp:`-gnatyy`
|
||||
*Set all standard style check options*
|
||||
*Set all standard style check options.*
|
||||
|
||||
This is equivalent to `gnaty3aAbcefhiklmnprst`, that is all checking
|
||||
options enabled with the exception of *-gnatyB*, *-gnatyd*,
|
||||
|
@ -4807,7 +4810,7 @@ checks to be performed. The following checks are defined:
|
|||
.. index:: -gnaty- (gcc)
|
||||
|
||||
:samp:`-gnaty-`
|
||||
*Remove style check options*
|
||||
*Remove style check options.*
|
||||
|
||||
This causes any subsequent options in the string to act as canceling the
|
||||
corresponding style check option. To cancel maximum nesting level control,
|
||||
|
@ -4821,7 +4824,7 @@ checks to be performed. The following checks are defined:
|
|||
.. index:: -gnaty+ (gcc)
|
||||
|
||||
:samp:`-gnaty+`
|
||||
*Enable style check options*
|
||||
*Enable style check options.*
|
||||
|
||||
This causes any subsequent options in the string to enable the corresponding
|
||||
style check option. That is, it cancels the effect of a previous -,
|
||||
|
@ -5145,7 +5148,7 @@ indicate Ada 83 compatibility mode.
|
|||
.. index:: ACVC, Ada 83 tests
|
||||
.. index:: Ada 83 mode
|
||||
|
||||
:samp:`-gnat83 (Ada 83 Compatibility Mode)`
|
||||
:samp:`-gnat83` (Ada 83 Compatibility Mode)
|
||||
Although GNAT is primarily an Ada 95 / Ada 2005 compiler, this switch
|
||||
specifies that the program is to be compiled in Ada 83 mode. With
|
||||
*-gnat83*, GNAT rejects most post-Ada 83 extensions and applies Ada 83
|
||||
|
@ -5159,9 +5162,8 @@ indicate Ada 83 compatibility mode.
|
|||
using only Ada 83 features.
|
||||
|
||||
With few exceptions (most notably the need to use `<>` on
|
||||
.. index:: Generic formal parameters
|
||||
|
||||
unconstrained generic formal parameters, the use of the new Ada 95 / Ada 2005
|
||||
unconstrained :index:`generic formal parameters <Generic formal parameters>`,
|
||||
the use of the new Ada 95 / Ada 2005
|
||||
reserved words, and the use of packages
|
||||
with optional bodies), it is not necessary to specify the
|
||||
*-gnat83* switch when compiling Ada 83 programs, because, with rare
|
||||
|
@ -6058,10 +6060,12 @@ be presented in subsequent sections.
|
|||
Output complete list of elaboration-order dependencies.
|
||||
|
||||
|
||||
.. index:: -E (gnatbind)
|
||||
.. index:: -Ea (gnatbind)
|
||||
|
||||
:samp:`-E`
|
||||
:samp:`-Ea`
|
||||
Store tracebacks in exception occurrences when the target supports it.
|
||||
The "a" is for "address"; tracebacks will contain hexadecimal addresses,
|
||||
unless symbolic tracebacks are enabled.
|
||||
|
||||
See also the packages `GNAT.Traceback` and
|
||||
`GNAT.Traceback.Symbolic` for more information.
|
||||
|
@ -6069,6 +6073,19 @@ be presented in subsequent sections.
|
|||
*gcc* option.
|
||||
|
||||
|
||||
.. index:: -Es (gnatbind)
|
||||
|
||||
:samp:`-Es`
|
||||
Store tracebacks in exception occurrences when the target supports it.
|
||||
The "s" is for "symbolic"; symbolic tracebacks are enabled.
|
||||
|
||||
|
||||
.. index:: -E (gnatbind)
|
||||
|
||||
:samp:`-E`
|
||||
Currently the same as `-Ea`.
|
||||
|
||||
|
||||
.. index:: -F (gnatbind)
|
||||
|
||||
:samp:`-F`
|
||||
|
@ -6084,7 +6101,7 @@ be presented in subsequent sections.
|
|||
.. index:: -h (gnatbind)
|
||||
|
||||
:samp:`-h`
|
||||
Output usage (help) information
|
||||
Output usage (help) information.
|
||||
|
||||
|
||||
.. index:: -H32 (gnatbind)
|
||||
|
@ -6194,7 +6211,7 @@ be presented in subsequent sections.
|
|||
.. index:: -p (gnatbind)
|
||||
|
||||
:samp:`-p`
|
||||
Pessimistic (worst-case) elaboration order
|
||||
Pessimistic (worst-case) elaboration order.
|
||||
|
||||
|
||||
.. index:: -P (gnatbind)
|
||||
|
@ -6229,7 +6246,7 @@ be presented in subsequent sections.
|
|||
objects with pragma Initialize_Scalars.
|
||||
The `xxx` string specified with the switch is one of:
|
||||
|
||||
* ``in`` for an invalid value*.
|
||||
* ``in`` for an invalid value.
|
||||
|
||||
If zero is invalid for the discrete type in question,
|
||||
then the scalar value is set to all zero bits.
|
||||
|
@ -6289,7 +6306,7 @@ be presented in subsequent sections.
|
|||
.. index:: -t (gnatbind)
|
||||
|
||||
:samp:`-t`
|
||||
Tolerate time stamp and other consistency errors
|
||||
Tolerate time stamp and other consistency errors.
|
||||
|
||||
|
||||
.. index:: -T (gnatbind)
|
||||
|
@ -6336,7 +6353,7 @@ be presented in subsequent sections.
|
|||
.. index:: -w (gnatbind)
|
||||
|
||||
:samp:`-w{x}`
|
||||
Warning mode; `x` = s/e for suppress/treat as error
|
||||
Warning mode; `x` = s/e for suppress/treat as error.
|
||||
|
||||
|
||||
.. index:: -Wx (gnatbind)
|
||||
|
|
|
@ -1101,6 +1101,15 @@ information. Here is an example:
|
|||
end STB;
|
||||
|
||||
|
||||
.. rubric:: Automatic Symbolic Tracebacks
|
||||
|
||||
Symbolic tracebacks may also be enabled by using the -Es switch to gnatbind (as
|
||||
in `gprbuild -g ... -bargs -Es`).
|
||||
This will cause the Exception_Information to contain a symbolic traceback,
|
||||
which will also be printed if an unhandled exception terminates the
|
||||
program.
|
||||
|
||||
|
||||
.. index:: Code Coverage
|
||||
.. index:: Profiling
|
||||
|
||||
|
@ -3211,8 +3220,11 @@ This retains compatibility with previous versions of
|
|||
GNAT which suppressed overflow checks by default and always
|
||||
used the base type for computation of intermediate results.
|
||||
|
||||
The switch *-gnato* (with no digits following) is equivalent to
|
||||
.. index:: -gnato (gcc)
|
||||
.. Sphinx allows no emphasis within :index: role. As a workaround we
|
||||
point the index to "switch" and use emphasis for "-gnato".
|
||||
|
||||
The :index:`switch <-gnato (gcc)>` *-gnato* (with no digits following)
|
||||
is equivalent to
|
||||
|
||||
::
|
||||
|
||||
|
@ -4184,7 +4196,3 @@ execution of this erroneous program:
|
|||
|
||||
The allocation root #1 of the first example has been split in 2 roots #1
|
||||
and #3, thanks to the more precise associated backtrace.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3983,12 +3983,20 @@ Project Level Attributes
|
|||
Value is the name of the target platform. Taken into account only in the main
|
||||
project.
|
||||
|
||||
Note that when the target is specified on the command line (usually with
|
||||
a switch --target=), the value of attribute reference 'Target is the one
|
||||
specified on the command line.
|
||||
|
||||
* **Runtime**: single, indexed, case-insensitive index
|
||||
|
||||
Index is a language name. Indicates the runtime directory that is to be used
|
||||
when using the compiler of the language. Taken into account only in the main
|
||||
project.
|
||||
|
||||
Note that when the runtime is specified for a language on the command line
|
||||
(usually with a switch --RTS), the value of attribute reference 'Runtime
|
||||
for this language is the one specified on the command line.
|
||||
|
||||
* **Configuration - Libraries**
|
||||
|
||||
* **Library_Builder**: single
|
||||
|
|
|
@ -62,7 +62,7 @@ def get_lexer_tokens(tag_highlighting=False, project_support=False):
|
|||
r'Version|Value_Size|Value|Valid_Scalars|VADS_Size|Valid|Val|'
|
||||
r'Update|Unrestricted_Access|Universal_Literal_String|'
|
||||
r'Unconstrained_Array|Unchecked_Access|Unbiased_Rounding|'
|
||||
r'UET_Address|Truncation|Type_Class|To_Address|Tick|Terminated|'
|
||||
r'Truncation|Type_Class|To_Address|Tick|Terminated|'
|
||||
r'Target_Name|Tag|System_Allocator_Alignment|Succ|Stub_Type|'
|
||||
r'Stream_Size|Storage_Unit|Storage_Size|Storage_Pool|Small|Size|'
|
||||
r'Simple_Storage_Pool|Signed_Zeros|Scaling|Scale|'
|
||||
|
|
1706
gcc/ada/gnat_rm.texi
1706
gcc/ada/gnat_rm.texi
File diff suppressed because it is too large
Load Diff
|
@ -21,7 +21,7 @@
|
|||
|
||||
@copying
|
||||
@quotation
|
||||
GNAT User's Guide for Native Platforms , October 20, 2015
|
||||
GNAT User's Guide for Native Platforms , October 23, 2015
|
||||
|
||||
AdaCore
|
||||
|
||||
|
@ -11028,7 +11028,7 @@ are not treated as errors if this switch is present.
|
|||
|
||||
@item @code{-gnatw.e}
|
||||
|
||||
@emph{Activate every optional warning}
|
||||
@emph{Activate every optional warning.}
|
||||
|
||||
@geindex Warnings
|
||||
@geindex activate every optional warning
|
||||
|
@ -11114,7 +11114,7 @@ This switch suppresses warnings for unrecognized pragmas.
|
|||
|
||||
@item @code{-gnatw.g}
|
||||
|
||||
@emph{Warnings used for GNAT sources}
|
||||
@emph{Warnings used for GNAT sources.}
|
||||
|
||||
This switch sets the warning categories that are used by the standard
|
||||
GNAT style. Currently this is equivalent to
|
||||
|
@ -11276,18 +11276,28 @@ Note that this warning option functions differently from the
|
|||
restriction @cite{No_Obsolescent_Features} in two respects.
|
||||
First, the restriction applies only to annex J features.
|
||||
Second, the restriction does flag uses of package @cite{ASCII}.
|
||||
@end table
|
||||
|
||||
@geindex -gnatwJ (gcc)
|
||||
|
||||
|
||||
@table @asis
|
||||
|
||||
@item @code{-gnatwJ}
|
||||
|
||||
@emph{Suppress warnings on obsolescent features (Annex J).}
|
||||
.. index:: -gnatwJ (gcc)
|
||||
|
||||
This switch disables warnings on use of obsolescent features.
|
||||
@end table
|
||||
|
||||
@geindex -gnatwk (gcc)
|
||||
|
||||
|
||||
@table @asis
|
||||
|
||||
@item @code{-gnatwk}
|
||||
|
||||
@emph{Activate warnings on variables that could be constants.}
|
||||
.. index:: -gnatwk (gcc)
|
||||
|
||||
This switch activates warnings for variables that are initialized but
|
||||
never modified, and then could be declared constants. The default is that
|
||||
|
@ -12076,7 +12086,7 @@ procedure K (S : String) is
|
|||
|
||||
@item @code{-gnatw.w}
|
||||
|
||||
@emph{Activate warnings on Warnings Off pragmas}
|
||||
@emph{Activate warnings on Warnings Off pragmas.}
|
||||
|
||||
This switch activates warnings for use of @cite{pragma Warnings (Off@comma{} entity)}
|
||||
where either the pragma is entirely useless (because it suppresses no
|
||||
|
@ -12095,7 +12105,7 @@ The default is that these warnings are not given.
|
|||
|
||||
@item @code{-gnatw.W}
|
||||
|
||||
@emph{Suppress warnings on unnecessary Warnings Off pragmas}
|
||||
@emph{Suppress warnings on unnecessary Warnings Off pragmas.}
|
||||
|
||||
This switch suppresses warnings for use of @cite{pragma Warnings (Off@comma{} ...)}.
|
||||
@end table
|
||||
|
@ -12204,7 +12214,7 @@ incompatibilities between Ada language versions.
|
|||
|
||||
@item @code{-gnatw.y}
|
||||
|
||||
@emph{Activate information messages for why package spec needs body}
|
||||
@emph{Activate information messages for why package spec needs body.}
|
||||
|
||||
There are a number of cases in which a package spec needs a body.
|
||||
For example, the use of pragma Elaborate_Body, or the declaration
|
||||
|
@ -12224,7 +12234,7 @@ body. The default is that such information messages are not output.
|
|||
|
||||
@item @code{-gnatw.Y}
|
||||
|
||||
@emph{Disable information messages for why package spec needs body}
|
||||
@emph{Disable information messages for why package spec needs body.}
|
||||
|
||||
This switch suppresses the output of information messages showing why
|
||||
a package specification needs a body.
|
||||
|
@ -12692,7 +12702,7 @@ options. For example, @emph{-gnatVif} or @emph{-gnatVfi}
|
|||
|
||||
@item @code{-gnatVi}
|
||||
|
||||
@emph{Validity checks for `in} mode parameters`
|
||||
@emph{Validity checks for `in` mode parameters.}
|
||||
|
||||
Arguments for parameters of mode @cite{in} are validity checked in function
|
||||
and procedure calls at the point of call.
|
||||
|
@ -12705,7 +12715,7 @@ and procedure calls at the point of call.
|
|||
|
||||
@item @code{-gnatVm}
|
||||
|
||||
@emph{Validity checks for `in out} mode parameters.`
|
||||
@emph{Validity checks for `in out` mode parameters.}
|
||||
|
||||
Arguments for parameters of mode @cite{in out} are validity checked in
|
||||
procedure calls at the point of call. The @cite{'m'} here stands for
|
||||
|
@ -12730,11 +12740,16 @@ for case statements and left hand side subscripts. Note that the use of
|
|||
the switch @emph{-gnatp} suppresses all run-time checks, including
|
||||
validity checks, and thus implies @emph{-gnatVn}. When this switch
|
||||
is used, it cancels any other @emph{-gnatV} previously issued.
|
||||
@end table
|
||||
|
||||
@geindex -gnatVo (gcc)
|
||||
|
||||
|
||||
@table @asis
|
||||
|
||||
@item @code{-gnatVo}
|
||||
|
||||
@emph{Validity checks for operator and attribute operands.}
|
||||
.. index:: -gnatVo (gcc)
|
||||
|
||||
Arguments for predefined operators and attributes are validity checked.
|
||||
This includes all operators in package @cite{Standard},
|
||||
|
@ -13469,7 +13484,7 @@ around conditions in @cite{if} statements, @cite{while} statements and
|
|||
|
||||
@item @code{-gnatyy}
|
||||
|
||||
@emph{Set all standard style check options}
|
||||
@emph{Set all standard style check options.}
|
||||
|
||||
This is equivalent to @cite{gnaty3aAbcefhiklmnprst}, that is all checking
|
||||
options enabled with the exception of @emph{-gnatyB}, @emph{-gnatyd},
|
||||
|
@ -13484,7 +13499,7 @@ options enabled with the exception of @emph{-gnatyB}, @emph{-gnatyd},
|
|||
|
||||
@item @code{-gnaty-}
|
||||
|
||||
@emph{Remove style check options}
|
||||
@emph{Remove style check options.}
|
||||
|
||||
This causes any subsequent options in the string to act as canceling the
|
||||
corresponding style check option. To cancel maximum nesting level control,
|
||||
|
@ -13502,7 +13517,7 @@ allowed after @emph{-}.
|
|||
|
||||
@item @code{-gnaty+}
|
||||
|
||||
@emph{Enable style check options}
|
||||
@emph{Enable style check options.}
|
||||
|
||||
This causes any subsequent options in the string to enable the corresponding
|
||||
style check option. That is, it cancels the effect of a previous -,
|
||||
|
@ -13888,7 +13903,7 @@ indicate Ada 83 compatibility mode.
|
|||
|
||||
@table @asis
|
||||
|
||||
@item @code{-gnat83 (Ada 83 Compatibility Mode)}
|
||||
@item @code{-gnat83} (Ada 83 Compatibility Mode)
|
||||
|
||||
Although GNAT is primarily an Ada 95 / Ada 2005 compiler, this switch
|
||||
specifies that the program is to be compiled in Ada 83 mode. With
|
||||
|
@ -13903,9 +13918,10 @@ where, due to contractual reasons, existing code needs to be maintained
|
|||
using only Ada 83 features.
|
||||
|
||||
With few exceptions (most notably the need to use @cite{<>} on
|
||||
.. index:: Generic formal parameters
|
||||
|
||||
unconstrained generic formal parameters, the use of the new Ada 95 / Ada 2005
|
||||
unconstrained
|
||||
@geindex Generic formal parameters
|
||||
generic formal parameters,
|
||||
the use of the new Ada 95 / Ada 2005
|
||||
reserved words, and the use of packages
|
||||
with optional bodies), it is not necessary to specify the
|
||||
@emph{-gnat83} switch when compiling Ada 83 programs, because, with rare
|
||||
|
@ -15133,6 +15149,34 @@ size of the environment task's secondary stack.
|
|||
Output complete list of elaboration-order dependencies.
|
||||
@end table
|
||||
|
||||
@geindex -Ea (gnatbind)
|
||||
|
||||
|
||||
@table @asis
|
||||
|
||||
@item @code{-Ea}
|
||||
|
||||
Store tracebacks in exception occurrences when the target supports it.
|
||||
The "a" is for "address"; tracebacks will contain hexadecimal addresses,
|
||||
unless symbolic tracebacks are enabled.
|
||||
|
||||
See also the packages @cite{GNAT.Traceback} and
|
||||
@cite{GNAT.Traceback.Symbolic} for more information.
|
||||
Note that on x86 ports, you must not use @emph{-fomit-frame-pointer}
|
||||
@emph{gcc} option.
|
||||
@end table
|
||||
|
||||
@geindex -Es (gnatbind)
|
||||
|
||||
|
||||
@table @asis
|
||||
|
||||
@item @code{-Es}
|
||||
|
||||
Store tracebacks in exception occurrences when the target supports it.
|
||||
The "s" is for "symbolic"; symbolic tracebacks are enabled.
|
||||
@end table
|
||||
|
||||
@geindex -E (gnatbind)
|
||||
|
||||
|
||||
|
@ -15140,12 +15184,7 @@ Output complete list of elaboration-order dependencies.
|
|||
|
||||
@item @code{-E}
|
||||
|
||||
Store tracebacks in exception occurrences when the target supports it.
|
||||
|
||||
See also the packages @cite{GNAT.Traceback} and
|
||||
@cite{GNAT.Traceback.Symbolic} for more information.
|
||||
Note that on x86 ports, you must not use @emph{-fomit-frame-pointer}
|
||||
@emph{gcc} option.
|
||||
Currently the same as @cite{-Ea}.
|
||||
@end table
|
||||
|
||||
@geindex -F (gnatbind)
|
||||
|
@ -15171,7 +15210,7 @@ flag checks are generated.
|
|||
|
||||
@item @code{-h}
|
||||
|
||||
Output usage (help) information
|
||||
Output usage (help) information.
|
||||
|
||||
@geindex -H32 (gnatbind)
|
||||
|
||||
|
@ -15280,7 +15319,7 @@ Output object list (to standard output or to the named file).
|
|||
|
||||
@item @code{-p}
|
||||
|
||||
Pessimistic (worst-case) elaboration order
|
||||
Pessimistic (worst-case) elaboration order.
|
||||
|
||||
@geindex -P (gnatbind)
|
||||
|
||||
|
@ -15319,7 +15358,7 @@ The @cite{xxx} string specified with the switch is one of:
|
|||
@itemize *
|
||||
|
||||
@item
|
||||
@code{in} for an invalid value*.
|
||||
@code{in} for an invalid value.
|
||||
|
||||
If zero is invalid for the discrete type in question,
|
||||
then the scalar value is set to all zero bits.
|
||||
|
@ -15388,7 +15427,7 @@ Link against a shared GNAT run time when available.
|
|||
|
||||
@item @code{-t}
|
||||
|
||||
Tolerate time stamp and other consistency errors
|
||||
Tolerate time stamp and other consistency errors.
|
||||
|
||||
@geindex -T (gnatbind)
|
||||
|
||||
|
@ -15435,7 +15474,7 @@ Values stored this way can be retrieved at run time using
|
|||
|
||||
@item @code{-w@emph{x}}
|
||||
|
||||
Warning mode; @cite{x} = s/e for suppress/treat as error
|
||||
Warning mode; @cite{x} = s/e for suppress/treat as error.
|
||||
|
||||
@geindex -Wx (gnatbind)
|
||||
|
||||
|
@ -21187,12 +21226,20 @@ case-insensitive values are "false" and "true" (the default).
|
|||
Value is the name of the target platform. Taken into account only in the main
|
||||
project.
|
||||
|
||||
Note that when the target is specified on the command line (usually with
|
||||
a switch --target=), the value of attribute reference 'Target is the one
|
||||
specified on the command line.
|
||||
|
||||
@item
|
||||
@strong{Runtime}: single, indexed, case-insensitive index
|
||||
|
||||
Index is a language name. Indicates the runtime directory that is to be used
|
||||
when using the compiler of the language. Taken into account only in the main
|
||||
project.
|
||||
|
||||
Note that when the runtime is specified for a language on the command line
|
||||
(usually with a switch --RTS), the value of attribute reference 'Runtime
|
||||
for this language is the one specified on the command line.
|
||||
@end itemize
|
||||
|
||||
@item
|
||||
|
@ -26331,6 +26378,15 @@ end STB;
|
|||
@end example
|
||||
@end quotation
|
||||
|
||||
@subsubheading Automatic Symbolic Tracebacks
|
||||
|
||||
|
||||
Symbolic tracebacks may also be enabled by using the -Es switch to gnatbind (as
|
||||
in @cite{gprbuild -g ... -bargs -Es}).
|
||||
This will cause the Exception_Information to contain a symbolic traceback,
|
||||
which will also be printed if an unhandled exception terminates the
|
||||
program.
|
||||
|
||||
@geindex Code Coverage
|
||||
|
||||
@geindex Profiling
|
||||
|
@ -28474,8 +28530,13 @@ This retains compatibility with previous versions of
|
|||
GNAT which suppressed overflow checks by default and always
|
||||
used the base type for computation of intermediate results.
|
||||
|
||||
The switch @emph{-gnato} (with no digits following) is equivalent to
|
||||
.. index:: -gnato (gcc)
|
||||
@c Sphinx allows no emphasis within :index: role. As a workaround we
|
||||
@c point the index to "switch" and use emphasis for "-gnato".
|
||||
|
||||
The
|
||||
@geindex -gnato (gcc)
|
||||
switch @emph{-gnato} (with no digits following)
|
||||
is equivalent to
|
||||
|
||||
@quotation
|
||||
|
||||
|
|
Loading…
Reference in New Issue