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:
Arnaud Charlet 2015-10-23 13:10:35 +00:00 committed by Arnaud Charlet
parent 879ac954ef
commit abcb651bac
16 changed files with 1230 additions and 922 deletions

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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
=======================

View File

@ -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)

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -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)

View File

@ -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.

View File

@ -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

View File

@ -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|'

File diff suppressed because it is too large Load Diff

View File

@ -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