diff options
author | Arnaud Charlet <charlet@adacore.com> | 2015-10-23 13:10:35 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-10-23 15:10:35 +0200 |
commit | abcb651bac5a4aeadca671b7ed76d396788cfa10 (patch) | |
tree | 5ce6497a1cd980922a90866947d722440d2d5484 /gcc/ada/doc | |
parent | 879ac954ef76a1af1888abfaa44257f6f728372b (diff) | |
download | gcc-abcb651bac5a4aeadca671b7ed76d396788cfa10.zip gcc-abcb651bac5a4aeadca671b7ed76d396788cfa10.tar.gz gcc-abcb651bac5a4aeadca671b7ed76d396788cfa10.tar.bz2 |
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
Diffstat (limited to 'gcc/ada/doc')
13 files changed, 205 insertions, 102 deletions
diff --git a/gcc/ada/doc/gnat_rm/about_this_guide.rst b/gcc/ada/doc/gnat_rm/about_this_guide.rst index 09eaceb..11450c4 100644 --- a/gcc/ada/doc/gnat_rm/about_this_guide.rst +++ b/gcc/ada/doc/gnat_rm/about_this_guide.rst @@ -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 diff --git a/gcc/ada/doc/gnat_rm/implementation_advice.rst b/gcc/ada/doc/gnat_rm/implementation_advice.rst index 2ccb4e4..c505e31 100644 --- a/gcc/ada/doc/gnat_rm/implementation_advice.rst +++ b/gcc/ada/doc/gnat_rm/implementation_advice.rst @@ -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. diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst b/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst index 5599a81..b0c5ef6 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst @@ -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 diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst b/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst index cb43587..601ca78e 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst @@ -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 diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst index 5f8491b..7bde3f3 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst @@ -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 ======================= diff --git a/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst b/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst index d46c52c..303b425 100644 --- a/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst +++ b/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst @@ -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) diff --git a/gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst b/gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst index 5788929..4ba0926 100644 --- a/gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst +++ b/gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst @@ -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). - -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*). +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 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. - diff --git a/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst b/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst index 8d28d24..ca27443 100644 --- a/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst @@ -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: diff --git a/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst b/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst index 1a88222..c820cb7 100644 --- a/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst +++ b/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst @@ -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 diff --git a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst index de04d2c..9351465 100644 --- a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst +++ b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst @@ -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) diff --git a/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst b/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst index 9e332d9..6f33d0b 100644 --- a/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst +++ b/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst @@ -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. - - - - diff --git a/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst b/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst index b2c0ec2..1fdb1f5 100644 --- a/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst +++ b/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst @@ -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 diff --git a/gcc/ada/doc/share/ada_pygments.py b/gcc/ada/doc/share/ada_pygments.py index 27462a3..c23005d 100644 --- a/gcc/ada/doc/share/ada_pygments.py +++ b/gcc/ada/doc/share/ada_pygments.py @@ -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|' |