From: Arnaud Charlet Date: Tue, 24 Mar 2015 11:49:20 +0000 (+0000) Subject: building_executable_programs_with_gnat.rst, [...]: Doc improvements. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a62638a3485c7fb31085a2b0fb973af618ae61d3;p=gcc.git building_executable_programs_with_gnat.rst, [...]: Doc improvements. * doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/gnat_utility_programs.rst doc/gnat_rm/implementation_defined_attributes.rst doc/gnat_rm/implementation_defined_pragmas.rst doc/gnat_rm/representation_clauses_and_pragmas.rst doc/gnat_rm/about_this_guide.rst doc/gnat_rm/implementation_of_ada_2012_features.rst: Doc improvements. * gnat_rm.texi, gnat_ugn.texi: Regenerate. From-SVN: r221628 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 3d02cb1cc2d..dc0f8537f9d 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2015-03-24 Arnaud Charlet + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_ugn/gnat_utility_programs.rst + doc/gnat_rm/implementation_defined_attributes.rst + doc/gnat_rm/implementation_defined_pragmas.rst + doc/gnat_rm/representation_clauses_and_pragmas.rst + doc/gnat_rm/about_this_guide.rst + doc/gnat_rm/implementation_of_ada_2012_features.rst: Doc improvements. + * gnat_rm.texi, gnat_ugn.texi: Regenerate. + 2015-03-23 Jakub Jelinek PR bootstrap/65522 diff --git a/gcc/ada/doc/gnat_rm/about_this_guide.rst b/gcc/ada/doc/gnat_rm/about_this_guide.rst index ad3ca5f460a..09eacebe0e4 100644 --- a/gcc/ada/doc/gnat_rm/about_this_guide.rst +++ b/gcc/ada/doc/gnat_rm/about_this_guide.rst @@ -115,10 +115,9 @@ This reference manual contains the following chapters: This reference manual assumes a basic familiarity with the Ada 95 language, as described in the :title:`International Standard ANSI/ISO/IEC-8652:1995`. -It does not require knowledge of the new features introduced by Ada 2005, -(officially known as `ISO/IEC 8652:1995 with Technical Corrigendum 1 -and Amendment 1`). -Both reference manuals are included in the GNAT documentation +It does not require knowledge of the new features introduced by Ada 2005 or +Ada 2012. +All three reference manuals are included in the GNAT documentation package. Conventions diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst b/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst index b25f9c996a6..94bb129ffd5 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst @@ -146,7 +146,7 @@ an address clause as in the following example: procedure L; for L'Address use K'Address; pragma Import (Ada, L); - + A call to `L` is then expected to result in a call to `K`. In Ada 83, where there were no access-to-subprogram values, this was @@ -186,6 +186,7 @@ attribute in the generic instance when applied to a scalar type or a record type without discriminants is always `True`. This usage is compatible with older Ada compilers, including notably DEC Ada. + Attribute Default_Bit_Order =========================== .. index:: Big endian @@ -214,6 +215,16 @@ order (as specified using pragma `Default_Scalar_Storage_Order`, or equal to `Default_Bit_Order` if unspecified) as a `System.Bit_Order` value. This is a static attribute. +Attribute Deref +=============== +.. index:: Deref + +The attribute `typ'Deref(expr)` where `expr` is of type `System.Address` yields +the variable of type `typ` that is located at the given address. It is similar +to `(totyp (expr).all)`, where `totyp` is an unchecked conversion from address to +a named access-to-`typ` type, except that it yields a variable, so it can be +used on the left side of an assignment. + Attribute Descriptor_Size ========================= .. index:: Descriptor @@ -232,7 +243,7 @@ the first element of the array. type Unconstr_Array is array (Positive range <>) of Boolean; Put_Line ("Descriptor size = " & Unconstr_Array'Descriptor_Size'Img); - + The attribute takes into account any additional padding due to type alignment. In the example above, the descriptor contains two values of type @@ -331,7 +342,7 @@ function with the following spec: .. code-block:: ada function S'Enum_Rep (Arg : S'Base) return ; - + It is also allowable to apply `Enum_Rep` directly to an object of an enumeration type or to a non-overloaded enumeration @@ -366,7 +377,7 @@ function with the following spec: .. code-block:: ada function S'Enum_Val (Arg : ) return S'Base; - + The function returns the enumeration value whose representation matches the argument, or raises Constraint_Error if no enumeration literal of the type @@ -403,11 +414,11 @@ function with the following specification: .. code-block:: ada function S'Fixed_Value (Arg : ) return S; - + The value returned is the fixed-point value `V` such that:: V = Arg * S'Small - + The effect is thus similar to first converting the argument to the integer type used to represent `S`, and then doing an unchecked @@ -461,14 +472,14 @@ debugging: .. code-block:: ada Put_Line ("X = " & X'Img); - + has the same meaning as the more verbose: .. code-block:: ada Put_Line ("X = " & T'Image (X)); - + where `T` is the (sub)type of the object `X`. Note that technically, in analogy to `Image`, @@ -491,7 +502,7 @@ function with the following spec: The value returned is the integer value `V`, such that:: Arg = V * T'Small - + where `T` is the type of `Arg`. The effect is thus similar to first doing an unchecked conversion from @@ -550,7 +561,7 @@ in this example: "Gen can only be instantiated at library level"); ... end Gen; - + Attribute Lock_Free =================== @@ -566,7 +577,7 @@ Attribute Loop_Entry Syntax:: X'Loop_Entry [(loop_name)] - + The `Loop_Entry` attribute is used to refer to the value that an expression had upon entry to a given loop in much the same way that the @@ -678,7 +689,7 @@ Similarly, a record containing an integer and a character: I : Integer; C : Character; end record; - + will have a size of 40 (that is `Rec'Size` will be 40). The alignment will be 4, because of the @@ -715,7 +726,7 @@ Consider this example: type "R1" defined at line 3 13. end; - + In the absence of lines 5 and 6, types `R1` and `R2` statically match and @@ -765,8 +776,8 @@ bounds are allocated just before the first component, whereas ``X'Address`` returns the address of the first component. -Here, we are interpreting 'storage pool' broadly to mean -``wherever the object is allocated``, which could be a +Here, we are interpreting 'storage pool' broadly to mean +``wherever the object is allocated``, which could be a user-defined storage pool, the global heap, on the stack, or in a static memory area. For an object created by `new`, ``Ptr.all'Pool_Address`` is @@ -803,7 +814,7 @@ There are two forms: System'Restriction_Set (partition_boolean_restriction_NAME) System'Restriction_Set (No_Dependence => library_unit_NAME); - + In the case of the first form, the only restriction names allowed are parameterless restrictions that are checked @@ -839,7 +850,7 @@ So for example if you write else ... end if; - + And the result is False, so that the else branch is executed, you can assume that this restriction is not set for any unit @@ -939,7 +950,7 @@ of the use of this feature: -- If Scalar_Storage_Order is specified, it must be consistent with -- Bit_Order, so it's best to always define the latter explicitly if -- the former is used. - + Other properties are as for standard representation attribute `Bit_Order`, as defined by Ada RM 13.5.3(4). The default is `System.Default_Bit_Order`. @@ -1020,7 +1031,7 @@ via an attribute_definition_clause (or by specifying the equivalent aspect): for Acc'Simple_Storage_Pool use My_Pool; - + The name given in an attribute_definition_clause for the `Simple_Storage_Pool` attribute shall denote a variable of @@ -1174,7 +1185,7 @@ corresponding actual subtype. The value of this attribute is of type Type_Class_Access, Type_Class_Task, Type_Class_Address); - + Protected types yield the value `Type_Class_Task`, which thus applies to all concurrent types. This attribute is designed to @@ -1241,7 +1252,7 @@ For example, the following program prints the first 50 digits of pi: begin Put (Ada.Numerics.Pi'Universal_Literal_String); end; - + Attribute Unrestricted_Access ============================= @@ -1291,7 +1302,7 @@ has returned, such calls are erroneous. For example: end P2; end P; - + When P1 is called from P2, the call via Global is OK, but if P1 were called after P2 returns, it would be an erroneous use of a dangling @@ -1348,7 +1359,7 @@ reject the use as illegal, as shown in the following example: P (X2'Unrestricted_Access); -- OK end; - + but other cases cannot be detected by the compiler, and are considered to be erroneous. Consider the following example: @@ -1376,7 +1387,7 @@ considered to be erroneous. Consider the following example: begin P (A (Y)); end; - + A normal unconstrained array value or a constrained array object marked as aliased has the bounds in memory @@ -1408,7 +1419,7 @@ is not well-defined. Consider this example: RV : R := P'Unrestricted_Access; .. RV.all := 3; - + Here we attempt to modify the constant P from 4 to 3, but the compiler may or may not notice this attempt, and subsequent references to P may yield @@ -1425,7 +1436,7 @@ value of an `IN` parameter: begin RV.all := 'a'; end; - + In general this is a risky approach. It may appear to "work" but such uses of `Unrestricted_Access` are potentially non-portable, even from one version @@ -1446,7 +1457,7 @@ with one or more modified components. The syntax is:: MULTIDIMENSIONAL_ARRAY_COMPONENT_ASSOCIATION ::= INDEX_EXPRESSION_LIST_LIST => EXPRESSION INDEX_EXPRESSION_LIST_LIST ::= INDEX_EXPRESSION_LIST {| INDEX_EXPRESSION_LIST } INDEX_EXPRESSION_LIST ::= ( EXPRESSION {, EXPRESSION } ) - + where `PREFIX` is the name of an array or record object, the association list in parentheses does not contain an `others` @@ -1463,7 +1474,7 @@ example: ... Avar1 : Arr := (1,2,3,4,5); Avar2 : Arr := Avar1'Update (2 => 10, 3 .. 4 => 20); - + yields a value for `Avar2` of 1,10,20,20,5 with `Avar1` begin unmodified. Similarly: @@ -1474,7 +1485,7 @@ begin unmodified. Similarly: ... Rvar1 : Rec := (A => 1, B => 2, C => 3); Rvar2 : Rec := Rvar1'Update (B => 20); - + yields a value for `Rvar2` of (A => 1, B => 20, C => 3), with `Rvar1` being unmodifed. @@ -1484,7 +1495,7 @@ completely before it is used. This means that if you write: .. code-block:: ada Avar1 := Avar1'Update (1 => 10, 2 => Function_Call); - + then the value of `Avar1` is not modified if `Function_Call` raises an exception, unlike the effect of a series of direct assignments @@ -1508,7 +1519,7 @@ Multi-dimensional arrays can be modified, as shown by this example: A : array (1 .. 10, 1 .. 10) of Integer; .. A := A'Update ((1, 2) => 20, (3, 4) => 30); - + which changes element (1,2) to 20 and (3,4) to 30. diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst index a1147adca1c..707f76e350e 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst @@ -2196,6 +2196,25 @@ Syntax: This pragma is identical in effect to pragma `Comment`. It is provided for compatibility with other Ada compilers providing this pragma. +Pragma Ignore_Pragma +==================== + +Syntax: + + +.. code-block:: ada + + pragma Ignore_Pragma (pragma_IDENTIFIER); + +This is a configuration pragma +that takes a single argument that is a simple identifier. Any subsequent +use of a pragma whose pragma identifier matches this argument will be +silently ignored. This may be useful when legacy code or code intended +for compilation with some other compiler contains pragmas that match the +name, but not the exact implementation, of a `GNAT` pragma. The use of this +pragma allows such pragmas to be ignored, which may be useful in `CodePeer` +mode, or during porting of legacy code. + Pragma Implementation_Defined ============================= @@ -5737,6 +5756,8 @@ names that are implementation defined (as permitted by the RM): on addresses used in address clauses. Such checks can also be suppressed by suppressing range checks, but the specific use of `Alignment_Check` allows suppression of alignment checks without suppressing other range checks. + Note that `Alignment_Check` is suppressed by default on machines (such as + the x86) with non-strict alignment. * `Atomic_Synchronization` can be used to suppress the special memory 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 5ae5faca67f..d46c52c6d1c 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 @@ -15,8 +15,10 @@ Implementation of Ada 2012 Features .. index:: Ada_2012 configuration pragma This chapter contains a complete list of Ada 2012 features that have been -implemented as of GNAT version 6.4. Generally, these features are only -available if the *-gnat12* (Ada 2012 features enabled) flag is set +implemented. +Generally, these features are only +available if the *-gnat12* (Ada 2012 features enabled) option is set, +which is the default behavior, or if the configuration pragma `Ada_2012` is used. However, new pragmas, attributes, and restrictions are 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 d2a19877fcc..8cd2c0fcac7 100644 --- a/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst @@ -84,7 +84,7 @@ values are as follows: A, B : Character; end record; for Small'Size use 16; - + then the default alignment of the record type `Small` is 2, not 1. This leads to more efficient code when the record is treated as a unit, and also allows the type to specified as `Atomic` on architectures requiring @@ -122,7 +122,7 @@ to control this choice. Consider: type R is range 1 .. 10_000; for R'Alignment use 1; subtype RS is R range 1 .. 1000; - + The alignment clause specifies an alignment of 1 for the first named subtype `R` but this does not necessarily apply to `RS`. When writing portable Ada code, you should avoid writing code that explicitly or @@ -159,7 +159,7 @@ For example: Y1 : integer; Y2 : boolean; end record; - + In this example, `Smallint'Size` = `Smallint'Value_Size` = 3, as specified by the RM rules, but objects of this type will have a size of 8 @@ -189,7 +189,7 @@ increasing it. For example, if we have: type My_Boolean is new Boolean; for My_Boolean'Size use 32; - + then values of this type will always be 32 bits long. In the case of discrete types, the size can be increased up to 64 bits, with the effect that the entire specified field is used to hold the value, sign- or @@ -227,7 +227,7 @@ task definition a pragma of the form: .. code-block:: ada pragma Storage_Size (Default_Stack_Size); - + Then `Default_Stack_Size` can be defined in a global package, and modified as required. Any tasks requiring stack sizes different from the default can have an appropriate alternative reference in the pragma. @@ -269,7 +269,7 @@ size storage pool is eliminated. Consider the following example: -- ... y := new R; end; - + As indicated in this example, these dummy storage pools are often useful in connection with interfacing where no object will ever be allocated. If you compile the above example, you get the warning: @@ -278,7 +278,7 @@ compile the above example, you get the warning: p.adb:16:09: warning: allocation from empty storage pool p.adb:16:09: warning: Storage_Error will be raised at run time - + Of course in practice, there will not be any explicit allocators in the case of such an access declaration. @@ -314,7 +314,7 @@ for any variant. Consider the following program Put_Line (Integer'Image (V1'Size)); Put_Line (Integer'Image (V2'Size)); end q; - + Here we are dealing with a variant record, where the True variant requires 16 bits, and the False variant requires 8 bits. In the above example, both V1 and V2 contain the False variant, @@ -325,7 +325,7 @@ program is: 8 16 - + The reason for the difference here is that the discriminant value of V1 is fixed, and will always be False. It is not possible to assign a True variant value to V1, therefore 8 bits is sufficient. On the @@ -376,7 +376,7 @@ Consider the following modified version of the above program: Put_Line (Integer'Image (V2'Size)); Put_Line (Integer'IMage (Size (V2))); end q; - + The output from this program is :: @@ -385,7 +385,7 @@ The output from this program is 8 16 16 - + Here we see that while the `'Size` attribute always returns the maximum size, regardless of the current variant value, the `Size` function does indeed return the size of the current @@ -413,7 +413,7 @@ For example, suppose we have the declaration: type Small is range -7 .. -4; for Small'Size use 2; - + Although the default size of type `Small` is 4, the `Size` clause is accepted by GNAT and results in the following representation scheme: @@ -424,7 +424,7 @@ scheme: -6 is represented as 2#01# -5 is represented as 2#10# -4 is represented as 2#11# - + Biased representation is only used if the specified `Size` clause cannot be accepted in any other manner. These reduced sizes that force biased representation can be used for all discrete types except for @@ -461,7 +461,7 @@ from Ada 83 to Ada 95 or Ada 2005. For example, consider: at 0 range 0 .. Natural'Size - 1; at 0 range Natural'Size .. 2 * Natural'Size - 1; end record; - + In the above code, since the typical size of `Natural` objects is 32 bits and `Natural'Size` is 31, the above code can cause unexpected inefficient packing in Ada 95 and Ada 2005, and in general @@ -485,19 +485,19 @@ byte access instructions such as the Alpha. The default rules for the value of `Object_Size` for discrete types are as follows: -* +* The `Object_Size` for base subtypes reflect the natural hardware size in bits (run the compiler with *-gnatS* to find those values for numeric types). Enumeration types and fixed-point base subtypes have 8, 16, 32 or 64 bits for this size, depending on the range of values to be stored. -* +* The `Object_Size` of a subtype is the same as the `Object_Size` of the type from which it is obtained. -* +* The `Object_Size` of a derived base type is copied from the parent base type, and the `Object_Size` of a derived first subtype is copied from the parent first subtype. @@ -513,18 +513,18 @@ target dependent). The default rules for the value of `Value_Size` are as follows: -* +* The `Value_Size` for a base subtype is the minimum number of bits required to store all values of the type (including the sign bit only if negative values are possible). -* +* If a subtype statically matches the first subtype of a given type, then it has by default the same `Value_Size` as the first subtype. This is a consequence of RM 13.1(14): "if two subtypes statically match, then their subtype-specific aspects are the same".) -* +* All other subtypes have a `Value_Size` corresponding to the minimum number of bits required to store all values of the subtype. For dynamic bounds, it is assumed that the value can range down or up @@ -588,13 +588,13 @@ under what conditions must the RM `Size` be used. The following is a list of the occasions on which the RM `Size` must be used: -* +* Component size for packed arrays or records -* +* Value of the attribute `Size` for a type -* +* Warning about sizes not matching for unchecked conversion For record types, the `Object_Size` is always a multiple of the @@ -608,7 +608,7 @@ alignment of the type (this is true for all types). In some cases the X : Integer; Y : Character; end record; - + On a typical 32-bit architecture, the X component will be four bytes, and require four-byte alignment, and the Y component will be one byte. In this @@ -632,7 +632,7 @@ for a particular subtype. Consider this example: type R is (A, B, C, D, E, F); subtype RAB is R range A .. B; subtype REF is R range E .. F; - + By default, `RAB` has a size of 1 (sufficient to accommodate the representation @@ -645,7 +645,7 @@ following `Value_Size` attribute definition clause: .. code-block:: ada for REF'Value_Size use 1; - + then biased representation is forced for `REF`, and 0 will represent `E` and 1 will represent `F`. @@ -676,7 +676,7 @@ honor all packing requests in this range. For example, if we have: type r is array (1 .. 8) of Natural; for r'Component_Size use 31; - + then the resulting array has a length of 31 bytes (248 bits = 8 * 31). Of course access to the components of such an array is considerably @@ -695,7 +695,7 @@ padded because of its default alignment. For example, if we have: type a is array (1 .. 8) of r; for a'Component_Size use 72; - + then the resulting array has a length of 72 bytes, instead of 96 bytes if the alignment of the record (4) was obeyed. @@ -758,7 +758,7 @@ restrictions placed on component clauses as follows: A at 0 range 7 .. 7; B at 0 range 0 .. 6; end record; - + The useful application here is to write the second declaration with the `Bit_Order` attribute definition clause, and know that it will be treated @@ -784,7 +784,7 @@ restrictions placed on component clauses as follows: for R2 use record A at 0 range 0 .. 31; end record; - + This declaration will result in a little-endian integer on a little-endian machine, and a big-endian integer on a big-endian machine. @@ -804,7 +804,7 @@ restrictions placed on component clauses as follows: Since the misconception that Bit_Order automatically deals with all endian-related incompatibilities is a common one, the specification of a component field that is an integral number of bytes will always -generate a warning. This warning may be suppressed using `pragma Warnings (Off)` +generate a warning. This warning may be suppressed using `pragma Warnings (Off)` if desired. The following section contains additional details regarding the issue of byte ordering. @@ -907,7 +907,7 @@ On a big-endian machine, we can write the following representation clause Slave_V6 at 1 range 6 .. 6; Slave_V7 at 1 range 7 .. 7; end record; - + Now if we move this to a little endian machine, then the bit ordering within the byte is backwards, so we have to rewrite the record rep clause as: @@ -933,7 +933,7 @@ the byte is backwards, so we have to rewrite the record rep clause as: Slave_V6 at 1 range 1 .. 1; Slave_V7 at 1 range 0 .. 0; end record; - + It is a nuisance to have to rewrite the clause, especially if the code has to be maintained on both machines. However, @@ -948,7 +948,7 @@ first record clause, together with the declaration .. code-block:: ada for Data'Bit_Order use High_Order_First; - + and the effect is what is desired, namely the layout is exactly the same, independent of whether the code is compiled on a big-endian or little-endian @@ -982,7 +982,7 @@ example as: Slave_V6 at 0 range 14 .. 14; Slave_V7 at 0 range 15 .. 15; end record; - + This is exactly equivalent to saying (a repeat of the first example): @@ -1008,7 +1008,7 @@ This is exactly equivalent to saying (a repeat of the first example): Slave_V6 at 1 range 6 .. 6; Slave_V7 at 1 range 7 .. 7; end record; - + Why are they equivalent? Well take a specific field, the `Slave_V2` field. The storage place attributes are obtained by normalizing the @@ -1060,7 +1060,7 @@ some machines we might write: Slave_V6 at Slave_Byte range 6 .. 6; Slave_V7 at Slave_Byte range 7 .. 7; end record; - + Now to switch between machines, all that is necessary is to set the boolean constant `Master_Byte_First` in an appropriate manner. @@ -1076,13 +1076,13 @@ Pragma `Pack` applied to an array has no effect unless the component type is packable. For a component type to be packable, it must be one of the following cases: -* +* Any scalar type -* +* Any type whose size is specified with a size clause -* +* Any packed array type with a static size -* +* Any record type padded because of its default alignment For all these cases, if the component subtype size is in the range @@ -1096,7 +1096,7 @@ For example if we have: type ar is array (1 .. 8) of r; pragma Pack (ar); - + Then the component size of `ar` will be set to 5 (i.e., to `r'size`, and the size of the array `ar` will be exactly 40 bits. @@ -1154,7 +1154,7 @@ occurs with subtype `Natural`. Consider: type Arr is array (1 .. 32) of Natural; pragma Pack (Arr); - + In all commonly used Ada 83 compilers, this pragma Pack would be ignored, since typically `Natural'Size` is 32 in Ada 83, and in any case most Ada 83 compilers did not attempt 31 bit packing. @@ -1170,7 +1170,7 @@ explicitly: type Arr is array (1 .. 32) of Natural; for Arr'Component_Size use 31; - + Here 31-bit packing is achieved as required, and no warning is generated, since in this case the programmer intention is clear. @@ -1187,11 +1187,11 @@ taken by components. We distinguish between *packable* components and *non-packable* components. Components of the following types are considered packable: -* +* Components of a primitive type are packable unless they are aliased or of an atomic type. -* +* Small packed arrays, whose size does not exceed 64 bits, and where the size is statically known at compile time, are represented internally as modular integers, and so they are also packable. @@ -1226,7 +1226,7 @@ For example, consider the record L6 : Rb2; end record; pragma Pack (X2); - + The representation for the record X2 is as follows: .. code-block:: ada @@ -1282,7 +1282,7 @@ thus the same lack of restriction applies. For example, if you declare: type R is array (1 .. 49) of Boolean; pragma Pack (R); for R'Size use 49; - + then a component clause for a component of type R may start on any specified bit boundary, and may specify a value of 49 bits or greater. @@ -1331,7 +1331,7 @@ so for example, the following is permitted: L at 0 range 2 .. 81; R at 0 range 82 .. 161; end record; - + Note: the above rules apply to recent releases of GNAT 5. In GNAT 3, there are more severe restrictions on larger components. For non-primitive types, including packed arrays with a size greater than @@ -1371,7 +1371,7 @@ or address overlays. For example C : Character; I : Integer; end record; - + On typical machines, integers need to be aligned on a four-byte boundary, resulting in three bytes of undefined rubbish following the 8-bit field for C. To ensure that the hole in a variable of @@ -1387,7 +1387,7 @@ you could for example do: BaseVar : Base; RealVar : Hrec; for RealVar'Address use BaseVar'Address; - + Now the 8-bytes of the value of RealVar start out containing all zero bits. A safer approach is to just define dummy fields, avoiding the @@ -1402,7 +1402,7 @@ holes, as in: Dummy3 : Short_Short_Integer := 0; I : Integer; end record; - + And to make absolutely sure that the intent of this is followed, you can use representation clauses: @@ -1416,7 +1416,7 @@ can use representation clauses: I at 4 range 0 .. 31; end record; for Hrec'Size use 64; - + .. _Enumeration_Clauses: @@ -1437,7 +1437,7 @@ be in the range: .. code-block:: ada 0 .. System.Max_Binary_Modulus; - + A *confirming* representation clause is one in which the values range from 0 in sequence, i.e., a clause that confirms the default representation @@ -1455,7 +1455,7 @@ manner. Consider the declarations: type r is (A, B, C); for r use (A => 1, B => 5, C => 10); type t is array (r) of Character; - + The array type t corresponds to a vector with exactly three elements and has a default size equal to `3*Character'Size`. This ensures efficient use of space, but means that accesses to elements of the array will incur @@ -1519,14 +1519,14 @@ if one is present, is inexpensive). In addition, if there is no implicit or explicit initialization, then there are no restrictions. GNAT will reject only the case where all three of these conditions hold: -* +* The type of the item is non-elementary (e.g., a record or array). -* +* There is explicit or implicit initialization required for the object. Note that access values are always implicitly initialized. -* +* The address value is non-static. 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. @@ -1536,7 +1536,7 @@ only the case where all three of these conditions hold: Anchor : Some_Initialized_Type; Overlay : Some_Initialized_Type; for Overlay'Address use Anchor'Address; - + However, the prefix of the address clause cannot be an array component, or a component of a discriminated record. @@ -1553,7 +1553,7 @@ expressions have identical values: To_Address (16#1234_0000#) System'To_Address (16#1234_0000#); - + except that the second form is considered to be a static expression, and thus when used as an address clause value is always permitted. @@ -1569,13 +1569,15 @@ the same as the alignment of the type of the object). If an address clause is given that specifies an inappropriately aligned address value, then the program execution is erroneous. -Since this source of erroneous behavior can have unfortunate effects, GNAT +Since this source of erroneous behavior can have unfortunate effects on +machines with strict alignment requirements, GNAT checks (at compile time if possible, generating a warning, or at execution time with a run-time check) that the alignment is appropriate. If the run-time check fails, then `Program_Error` is raised. This run-time check is suppressed if range checks are suppressed, or if the special GNAT check Alignment_Check is suppressed, or if -`pragma Restrictions (No_Elaboration_Code)` is in effect. +`pragma Restrictions (No_Elaboration_Code)` is in effect. It is also +suppressed by default on non-strict alignment machines (such as the x86). Finally, GNAT does not permit overlaying of objects of controlled types or composite types containing a controlled component. In most cases, the compiler @@ -1621,7 +1623,7 @@ programmer wants, so GNAT will output a warning: initialization (RM B(24)) end G; - + As indicated by the warning message, the solution is to use a (dummy) pragma Import to suppress this initialization. The pragma tell the compiler that the object is declared and initialized elsewhere. The following package compiles @@ -1639,7 +1641,7 @@ without warnings (and the initialization is suppressed): for Ext'Address use System'To_Address (16#1234_1234#); pragma Import (Ada, Ext); end G; - + A final issue with address clauses involves their use for overlaying variables, as in the following example: @@ -1651,7 +1653,7 @@ variables, as in the following example: A : Integer; B : Integer; for B'Address use A'Address; - + or alternatively, using the form recommended by the RM: @@ -1661,7 +1663,7 @@ or alternatively, using the form recommended by the RM: Addr : constant Address := A'Address; B : Integer; for B'Address use Addr; - + In both of these cases, `A` and `B` become aliased to one another via the @@ -1702,7 +1704,7 @@ issue of unintentional initialization, as shown by this example: suppress initialization (RM B.1(24)) end Overwrite_Record; - + Here the default initialization of `Y` will clobber the value of `X`, which justifies the warning. The warning notes that this effect can be eliminated by adding a `pragma Import` @@ -1720,7 +1722,7 @@ which suppresses the initialization: for Y'Address use X'Address; pragma Import (Ada, Y); end Overwrite_Record; - + Note that the use of `pragma Initialize_Scalars` may cause variables to be initialized when they would not otherwise have been in the absence @@ -1751,7 +1753,7 @@ for the composite object: Put_Line ("X was not clobbered"); end if; end Overwrite_Array; - + The above program generates the warning as shown, and at execution time, prints `X was clobbered`. If the `pragma Import` is added as suggested: @@ -1773,7 +1775,7 @@ added as suggested: Put_Line ("X was not clobbered"); end if; end Overwrite_Array; - + then the program compiles without the warning and when run will generate the output `X was not clobbered`. @@ -1803,7 +1805,7 @@ operations, for example: Temp := Mem; Temp.A := 32; Mem := Temp; - + For a full access (reference or modification) of the variable (Mem) in this case, as in the above examples, GNAT guarantees that the entire atomic word will be accessed. It is not clear whether the RM requires this. For @@ -1816,7 +1818,7 @@ A problem arises with a component access such as: .. code-block:: ada Mem.A := 32; - + Note that the component A is not declared as atomic. This means that it is not clear what this assignment means. It could correspond to full word read and write as given in the first example, or on architectures that supported @@ -1831,7 +1833,7 @@ a warning in such a case: | >>> warning: access to non-atomic component of atomic array, may cause unexpected accesses to atomic object - + It is best to be explicit in this situation, by either declaring the components to be atomic if you want the byte store, or explicitly writing the full word access sequence if that is what the hardware requires. @@ -1869,7 +1871,7 @@ There are four exceptions to this general rule: :: type Color is (Red, Green, Blue); - + 8 bits is sufficient to store all values of the type, so by default, objects of type `Color` will be represented using 8 bits. However, normal C convention is to use 32 bits for all enum values in C, since enum values @@ -1902,7 +1904,7 @@ There are four exceptions to this general rule: type C_Switch is new Boolean; pragma Convention (C, C_Switch); - + then the GNAT generated code will treat any nonzero value as true. For truth values generated by GNAT, the conventional value 1 will be used for True, but @@ -1984,7 +1986,7 @@ The following program shows these conventions in action: >>> subprogram "F" has wrong convention >>> does not match access to subprogram declared at line 24 39. end ConvComp; - + .. _Determining_the_Representations_chosen_by_GNAT: @@ -2058,7 +2060,7 @@ clauses. For example, if we compile the package: end record; pragma Pack (x2); end q; - + using the switch *-gnatR* we obtain the following output: .. code-block:: ada @@ -2111,7 +2113,7 @@ using the switch *-gnatR* we obtain the following output: l5 at 16 range 1 .. 13; l6 at 18 range 0 .. 71; end record; - + The Size values are actually the Object_Size, i.e., the default size that will be allocated for objects of the type. The ``??`` size for type r indicates that we have a variant record, and the 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 495e9fa4578..4c6e137ddcd 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 @@ -4676,8 +4676,12 @@ checks to be performed. The following checks are defined: :samp:`-gnatyO` *Check that overriding subprograms are explicitly marked as such.* - The declaration of a primitive operation of a type extension that overrides - an inherited operation must carry an overriding indicator. + This applies to all subprograms of a derived type that override a primitive + operation of the type, for both tagged and untagged types. In particular, + the declaration of a primitive operation of a type extension that overrides + an inherited operation must carry an overriding indicator. Another case is + the declaration of a function that overrides a predefined operator (such + as an equality operator). .. index:: -gnatyp (gcc) diff --git a/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst b/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst index f3af60c25ea..cbbebad1b3d 100644 --- a/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst +++ b/gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst @@ -57,7 +57,7 @@ The `gnatclean` command has the form: :: $ gnatclean switches `names` - + where `names` is a list of source file names. Suffixes :file:`.ads` and :file:`adb` may be omitted. If a project file is specified using switch :samp:`-P`, then `names` may be completely omitted. @@ -465,7 +465,7 @@ building specialized scripts. /home/comar/local/adainclude/s-tasoli.ads /home/comar/local/adainclude/s-unstyp.ads /home/comar/local/adainclude/unchconv.ads - + .. _The_Cross-Referencing_Tools_gnatxref_and_gnatfind: @@ -511,7 +511,7 @@ The command invocation for `gnatxref` is: :: $ gnatxref [`switches`] `sourcefile1` [`sourcefile2` ...] - + where *sourcefile1* [, *sourcefile2* ...] @@ -939,7 +939,7 @@ account. [default: `""`]. Specifies the name of the executable for the application. This variable can be referred to in the following lines by using the :samp:`{${main}` notation. - + * *comp_cmd=COMMAND* [default: `"gcc -c -I${src_dir} -g -gnatq"`]. @@ -1002,14 +1002,14 @@ are recognized: :: regexp ::= term {| term} -- alternation (term or term ...) - + term ::= item {item} -- concatenation (item then item) item ::= elmt -- match elmt item ::= elmt * -- zero or more elmt's item ::= elmt + -- one or more elmt's item ::= elmt ? -- matches elmt or nothing - + elmt ::= nschar -- matches given character elmt ::= [nschar {nschar}] -- matches any character listed elmt ::= [^ nschar {nschar}] -- matches any character not listed @@ -1020,7 +1020,7 @@ are recognized: char ::= any character, including special characters nschar ::= any character except ()[].*+?^ - + Here are a few examples: ``abcde|fghi`` @@ -1111,7 +1111,7 @@ You can then issue any of the following commands: Print Type: Unit Decl: bar.ads 2:15 Ref: main.adb 6:12 7:12 - + This shows that the entity `Main` is declared in main.ads, line 2, column 9, its body is in main.adb, line 1, column 14 and is not referenced any where. @@ -1137,7 +1137,7 @@ free implementation of *vi*, such as *vim*. :: $ gnatxref -v gnatfind.adb > tags - + The following command will generate the tags file for `gnatfind` itself (if the sources are in the search path!): @@ -1145,7 +1145,7 @@ The following command will generate the tags file for `gnatfind` itself :: $ gnatxref -v gnatfind.adb > tags - + From *vi*, you can then use the command :samp:`:tag {entity}` (replacing `entity` by whatever you are looking for), and vi will display a new file with the corresponding declaration of entity. @@ -1171,7 +1171,7 @@ Examples of `gnatfind` Usage directory/main.ads:106:14: xyz <= declaration directory/main.adb:24:10: xyz <= body directory/foo.ads:45:23: xyz <= declaration - + I.e., one of the entities xyz found in main.adb is declared at line 12 of main.ads (and its body is in main.adb), and another one is declared at line 45 of foo.ads @@ -1190,7 +1190,7 @@ Examples of `gnatfind` Usage procedure xyz is directory/foo.ads:45:23: xyz <= declaration xyz : Integer; - + This can make it easier to find exactly the location your are looking for. @@ -1352,13 +1352,13 @@ is located. The syntax of this line is: :: #!full_path_name_to_perl - + Alternatively, you may run the script using the following command line: :: $ perl gnathtml.pl [`switches`] `files` - + @@ -1392,7 +1392,7 @@ Alternatively, you may run the script using the following command line: :: $ gnat2xml [options] filenames [-files filename] [-cargs gcc_switches] - + Options: :samp:`--help` @@ -1409,7 +1409,7 @@ Alternatively, you may run the script using the following command line: the set of sources to be processed. The exact set of argument sources depends on other options specified, see below. - :samp:`-U` + :samp:`-U` If a project file is specified and no argument source is explicitly specified, process all the units of the closure of the argument project. Otherwise this option has no effect. @@ -1420,7 +1420,7 @@ Alternatively, you may run the script using the following command line: option), process the closure of units rooted at `main_unit`. Otherwise this option has no effect. - :samp:`-X{name}={value}` + :samp:`-X{name}={value}` Indicates that external variable `name` in the argument project has the value `value`. Has no effect if no project is specified as tool argument. @@ -1437,7 +1437,7 @@ Alternatively, you may run the script using the following command line: only compiles files that need to be recompiled. A project file is required in this mode. - :samp:`-j{n}` + :samp:`-j{n}` In *--incremental* mode, use `n` *gnat2xml* processes to perform XML generation in parallel. If `n` is 0, then the maximum number of parallel tree creations is the number of core @@ -1452,7 +1452,7 @@ Alternatively, you may run the script using the following command line: Directories to search for dependencies. You can also set the ADA_INCLUDE_PATH environment variable for this. - :samp:`--compact` + :samp:`--compact` Debugging version, with interspersed source, and a more compact representation of "sloc". This version does not conform to any schema. @@ -1463,15 +1463,15 @@ Alternatively, you may run the script using the following command line: :samp:`-files={filename}` The name of a text file containing a list of Ada source files to process - :samp:`-q` + :samp:`-q` Quiet - :samp:`-v` + :samp:`-v` Verbose - :samp:`-cargs` ... + :samp:`-cargs` ... Options to pass to gcc - + If a project file is specified and no argument source is explicitly specified, and no *-U* is specified, then the set of processed sources is all the immediate units of the argument project. @@ -1481,7 +1481,7 @@ Alternatively, you may run the script using the following command line: :: $ gnat2xml -v -output-dir=xml-files *.ad[sb] - + The above will create \*.xml files in the :file:`xml-files` subdirectory. For example, if there is an Ada package Mumble.Dumble, whose spec and body source code lives in mumble-dumble.ads and mumble-dumble.adb, @@ -1505,7 +1505,7 @@ Alternatively, you may run the script using the following command line: :: $ gnat2xsd > ada-schema.xsd - + *gnat2xml* generates XML files that will validate against :file:`ada-schema.xsd`. @@ -1549,7 +1549,7 @@ Alternatively, you may run the script using the following command line: type T is range 1..10; X, Y : constant T := 1; - + The first 'T' is the defining occurrence of a type. The 'X' is the defining occurrence of a constant, as is the 'Y', and the second 'T' is @@ -1577,14 +1577,14 @@ Alternatively, you may run the script using the following command line: ... -- Returns Element_Kinds: -- An_Expression - + The corresponding sub-element of type Assignment_Statement is: :: - + where Expression_Class is defined by an xsd:choice of all the various kinds of expression. @@ -1774,7 +1774,7 @@ Alternatively, you may run the script using the following command line: formal_function formal_package formal_package_declaration_with_box - + .. _Generating_Representation_Clauses: Generating Representation Clauses @@ -1808,7 +1808,7 @@ Alternatively, you may run the script using the following command line: ... ... - + .. only:: PRO or GPL @@ -2194,7 +2194,7 @@ Alternatively, you may run the script using the following command line: * *Maximal static nesting level of inner program units* According to :title:`Ada Reference Manual`, 10.1(1): - + "A program unit is either a package, a task unit, a protected unit, a protected entry, a generic unit, or an explicitly declared subprogram other than an enumeration literal." @@ -2619,7 +2619,7 @@ Alternatively, you may run the script using the following command line: return F_1 (I); end Fun; end Pack; - + If we apply *gnatmetric* with the *--coupling-all* option to these units, the result will be: @@ -2852,11 +2852,6 @@ Alternatively, you may run the script using the following command line: You can specify various style directives via switches; e.g., identifier case conventions, rules of indentation, and comment layout. - Note: A newly-redesigned set of formatting algorithms used by gnatpp - is now available. - To invoke the old formatting algorithms, use the ``--pp-old`` switch. - Support for ``--pp-old`` will be removed in some future version. - To produce a reformatted file, *gnatpp* invokes the Ada compiler and generates and uses the ASIS tree for the input source; thus the input must be legal Ada code, and the tool should have all the @@ -2875,7 +2870,7 @@ Alternatively, you may run the script using the following command line: :: $ gnatpp [`switches`] `filename` [-cargs `gcc_switches`] - + where * `switches` is an optional sequence of switches defining such properties as @@ -3499,12 +3494,6 @@ Alternatively, you may run the script using the following command line: of the default `--!pp on`. - .. index:: --pp-old (gnatpp) - - :samp:`--pp-old` - Use the old formatting algorithms. - - .. index:: -files (gnatpp) :samp:`-files {filename}` @@ -3597,12 +3586,12 @@ Alternatively, you may run the script using the following command line: Green_Interrupt_Kind); --!pp on -- reenable pretty printing ... - + You can specify different comment strings using the ``--pp-off`` and ``--pp-on`` switches. For example, if you say: :: - + $ gnatpp --pp-off=' pp-' *.ad? then gnatpp will recognize comments of the form @@ -3765,7 +3754,7 @@ Alternatively, you may run the script using the following command line: `casing_schema` ::= `identifier` | `simple_identifier` `simple_identifier` ::= `letter`{`letter_or_digit`} - + (See :title:`Ada Reference Manual`, Section 2.3) for the definition of the `identifier` lexical element and the `letter_or_digit` category.) @@ -3804,7 +3793,7 @@ Alternatively, you may run the script using the following command line: For example, suppose we have the following source to reformat: .. code-block:: ada - + procedure test is name1 : integer := 1; name4_name3_name2 : integer := 2; @@ -3813,7 +3802,7 @@ Alternatively, you may run the script using the following command line: begin name2_name3_name4 := name4_name3_name2 > name1; end; - + And suppose we have two dictionaries: :: @@ -3825,13 +3814,13 @@ Alternatively, you may run the script using the following command line: *dict2:* *NAME3* - + If *gnatpp* is called with the following switches: :: $ gnatpp -nM -D dict1 -D dict2 test.adb - + then we will get the following name casing in the *gnatpp* output: @@ -3885,13 +3874,13 @@ Alternatively, you may run the script using the following command line: Running *gnatstub* ------------------ - + *gnatstub* invocation has the following form: :: $ gnatstub [`switches`] `filename` [-cargs `gcc_switches`] - + where * *filename* @@ -3912,7 +3901,7 @@ Alternatively, you may run the script using the following command line: or creates the name file to generate using the standard GNAT naming conventions. - * *gcc_switches* is a list of switches for *gcc*. + * *gcc_switches* is a list of switches for *gcc*. They will be passed on to all compiler invocations made by *gnatstub* to generate the ASIS trees. Here you can provide ``-I`` switches to form the source search path, @@ -4212,7 +4201,7 @@ Alternatively, you may run the script using the following command line: :: $ gnattest `-Pprojname` [`--harness-dir=dirname`] [`switches`] [`filename`] [-cargs `gcc_switches`] - + where * :samp:`-P{projname}` @@ -4281,7 +4270,7 @@ Alternatively, you may run the script using the following command line: :: $ gnattest `test_drivers.list` [`switches`] - + where * :samp:`{test_drivers.list}` @@ -4557,15 +4546,15 @@ Alternatively, you may run the script using the following command line: located in: :: - + /share/examples/gnattest/simple - + This project contains a simple package containing one subprogram. By running gnattest: :: $ gnattest --harness-dir=driver -Psimple.gpr - + a test driver is created in directory ``driver``. It can be compiled and run: :: @@ -4573,7 +4562,7 @@ Alternatively, you may run the script using the following command line: $ cd obj/driver $ gnatmake -Ptest_driver $ test_runner - + One failed test with diagnosis ``test not implemented`` is reported. Since no special output option was specified, the test package ``Simple.Tests`` is located in: @@ -4581,7 +4570,7 @@ Alternatively, you may run the script using the following command line: :: /share/examples/gnattest/simple/obj/gnattest/tests - + For each package containing visible subprograms, a child test package is generated. It contains one test routine per tested subprogram. Each @@ -4601,7 +4590,7 @@ Alternatively, you may run the script using the following command line: :: Assert (Inc (1) = 2, "wrong incrementation"); - + After recompiling and running the test driver, one successfully passed test is reported. @@ -4642,7 +4631,7 @@ Alternatively, you may run the script using the following command line: $ cd obj/driver $ gnatmake -Ptest_driver $ test_runner - + The old test is not replaced with a stub, nor is it lost, but a new test skeleton is created for function Dec. @@ -4668,11 +4657,11 @@ Alternatively, you may run the script using the following command line: as passed to gnattest when generating the test driver. Passing it to the driver generated on the first example: - + :: $ test_runner --skeleton-default=pass - + makes both tests pass, even the unimplemented one. @@ -4695,7 +4684,7 @@ Alternatively, you may run the script using the following command line: $ cd /share/examples/gnattest/tagged_rec $ gnattest --harness-dir=driver -Ptagged_rec.gpr - + Taking a closer look at the test type declared in the test package Speed1.Controller_Test_Data is necessary. It is declared in: @@ -4741,7 +4730,7 @@ Alternatively, you may run the script using the following command line: $ cd obj/driver $ gnatmake -Ptest_driver $ test_runner - + There are 6 passed tests while there are only 5 testable subprograms. The test routine for function Speed has been inherited and run against objects of the derived type. @@ -4784,7 +4773,7 @@ Alternatively, you may run the script using the following command line: $ cd obj/driver $ gnatmake -Ptest_driver $ test_runner - + While all the tests pass by themselves, the parent test for Adjust_Speed fails against objects of the derived type. @@ -4812,7 +4801,7 @@ Alternatively, you may run the script using the following command line: $ cd /share/examples/gnattest/contracts $ gnattest --harness-dir=driver -Pcontracts.gpr - + Putting actual checks within the range of the contract does not cause any error reports. For example, for the test routine which corresponds to test case 1: @@ -4820,7 +4809,7 @@ Alternatively, you may run the script using the following command line: :: Assert (Sqrt (9.0) = 3.0, "wrong sqrt"); - + and for the test routine corresponding to test case 2: :: @@ -4834,7 +4823,7 @@ Alternatively, you may run the script using the following command line: $ cd obj/driver $ gnatmake -Ptest_driver $ test_runner - + However, by changing 9.0 to 25.0 and 3.0 to 5.0, for example, you can get a precondition violation for test case one. Also, by using any otherwise correct but positive pair of numbers in the second test routine, you can also @@ -4861,7 +4850,7 @@ Alternatively, you may run the script using the following command line: :: /share/examples/gnattest/additional_tests/ - + To create a test driver for already-written tests, use the ``--harness-only`` option: @@ -4871,7 +4860,7 @@ Alternatively, you may run the script using the following command line: --harness-only gnatmake -Pharness_only/test_driver.gpr harness_only/test_runner - + Additional tests can also be executed together with generated tests: :: @@ -4983,7 +4972,7 @@ Alternatively, you may run the script using the following command line: :: $ powerpc-elf-gnattest -Psimple.gpr -XPLATFORM=powerpc-elf -XRUNTIME=zfp - + .. _Current_Limitations: @@ -4994,4 +4983,5 @@ Alternatively, you may run the script using the following command line: * generic tests for nested generic packages and their instantiations * tests for protected subprograms and entries - + * if pragmas for C and C++ interaction are used, manual adjustments might be + necessary to make the test driver compilable diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 1985fd73d1b..5d523d134fb 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -21,7 +21,7 @@ @copying @quotation -GNAT Reference Manual , February 22, 2015 +GNAT Reference Manual , March 24, 2015 AdaCore @@ -163,6 +163,7 @@ Implementation Defined Pragmas * Pragma Float_Representation:: * Pragma Global:: * Pragma Ident:: +* Pragma Ignore_Pragma:: * Pragma Implementation_Defined:: * Pragma Implemented:: * Pragma Implicit_Packing:: @@ -353,6 +354,7 @@ Implementation Defined Attributes * Attribute Constrained:: * Attribute Default_Bit_Order:: * Attribute Default_Scalar_Storage_Order:: +* Attribute Deref:: * Attribute Descriptor_Size:: * Attribute Elaborated:: * Attribute Elab_Body:: @@ -1006,9 +1008,9 @@ developed in other Ada environments. This reference manual assumes a basic familiarity with the Ada 95 language, as described in the @cite{International Standard ANSI/ISO/IEC-8652:1995}. -It does not require knowledge of the new features introduced by Ada 2005, -(officially known as @cite{ISO/IEC 8652:1995 with Technical Corrigendum 1 and Amendment 1}). -Both reference manuals are included in the GNAT documentation +It does not require knowledge of the new features introduced by Ada 2005 or +Ada 2012. +All three reference manuals are included in the GNAT documentation package. @node Conventions,Related Information,What This Reference Manual Contains,About This Guide @@ -1193,6 +1195,7 @@ consideration, the use of these pragmas should be minimized. * Pragma Float_Representation:: * Pragma Global:: * Pragma Ident:: +* Pragma Ignore_Pragma:: * Pragma Implementation_Defined:: * Pragma Implemented:: * Pragma Implicit_Packing:: @@ -3549,7 +3552,7 @@ No other value of digits is permitted. For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.4. -@node Pragma Ident,Pragma Implementation_Defined,Pragma Global,Implementation Defined Pragmas +@node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas @anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{5f} @section Pragma Ident @@ -3563,8 +3566,28 @@ pragma Ident (static_string_EXPRESSION); This pragma is identical in effect to pragma @cite{Comment}. It is provided for compatibility with other Ada compilers providing this pragma. -@node Pragma Implementation_Defined,Pragma Implemented,Pragma Ident,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{60} +@node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas +@anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{60} +@section Pragma Ignore_Pragma + + +Syntax: + +@example +pragma Ignore_Pragma (pragma_IDENTIFIER); +@end example + +This is a configuration pragma +that takes a single argument that is a simple identifier. Any subsequent +use of a pragma whose pragma identifier matches this argument will be +silently ignored. This may be useful when legacy code or code intended +for compilation with some other compiler contains pragmas that match the +name, but not the exact implementation, of a @cite{GNAT} pragma. The use of this +pragma allows such pragmas to be ignored, which may be useful in @cite{CodePeer} +mode, or during porting of legacy code. + +@node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas +@anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{61} @section Pragma Implementation_Defined @@ -3591,7 +3614,7 @@ for the purpose of implementing the No_Implementation_Identifiers restriction. @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{61} +@anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{62} @section Pragma Implemented @@ -3637,7 +3660,7 @@ By_Any shares the behavior of By_Entry and By_Protected_Procedure depending on the target's overriding subprogram kind. @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{62} +@anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{63} @section Pragma Implicit_Packing @@ -3691,7 +3714,7 @@ sufficient. The use of pragma Implicit_Packing allows this record declaration to compile without an explicit pragma Pack. @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{63} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{64} @section Pragma Import_Function @@ -3756,7 +3779,7 @@ notation. If the mechanism is not specified, the default mechanism is used. @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{64} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{65} @section Pragma Import_Object @@ -3782,7 +3805,7 @@ point of view). @cite{size} is syntax checked, but otherwise ignored by GNAT. @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{65} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{66} @section Pragma Import_Procedure @@ -3822,7 +3845,7 @@ applies to a procedure rather than a function and the parameters @cite{Result_Type} and @cite{Result_Mechanism} are not permitted. @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{66} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{67} @section Pragma Import_Valued_Procedure @@ -3875,7 +3898,7 @@ pragma Import that specifies the desired convention, since otherwise the default convention is Ada, which is almost certainly not what is required. @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{67} +@anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{68} @section Pragma Independent @@ -3897,7 +3920,7 @@ constraints on the representation of the object (for instance prohibiting tight packing). @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{68} +@anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{69} @section Pragma Independent_Components @@ -3918,7 +3941,7 @@ constraints on the representation of the object (for instance prohibiting tight packing). @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{69} +@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{6a} @section Pragma Initial_Condition @@ -3926,7 +3949,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.1.6. @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{6a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{6b} @section Pragma Initialize_Scalars @@ -3989,7 +4012,7 @@ checking (see description of stack checking in the GNAT User's Guide) when using this pragma. @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{6b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{6c} @section Pragma Initializes @@ -3997,7 +4020,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.1.5. @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{6c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{6d} @section Pragma Inline_Always @@ -4012,7 +4035,7 @@ the use of option @emph{-gnatn} or @emph{-gnatN} and the inlining happens regardless of whether these options are used. @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{6d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{6e} @section Pragma Inline_Generic @@ -4030,7 +4053,7 @@ than to check that the given names are all names of generic units or generic instances. @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{6e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{6f} @section Pragma Interface @@ -4057,7 +4080,7 @@ maintaining Ada 83/Ada 95 compatibility and is compatible with other Ada 83 compilers. @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{6f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{70} @section Pragma Interface_Name @@ -4076,7 +4099,7 @@ for an interfaced subprogram, and is provided for compatibility with Ada least one of @cite{External_Name} or @cite{Link_Name}. @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{70} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{71} @section Pragma Interrupt_Handler @@ -4096,7 +4119,7 @@ when this pragma is applied to a nonprotected procedure, the instruction maskable interrupts, in place of the normal return instruction. @node Pragma Interrupt_State,Pragma Invariant,Pragma Interrupt_Handler,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{71} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{72} @section Pragma Interrupt_State @@ -4179,7 +4202,7 @@ with an application's runtime behavior in the cases of the synchronous signals, and in the case of the signal used to implement the @cite{abort} statement. @node Pragma Invariant,Pragma Java_Constructor,Pragma Interrupt_State,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{72} +@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{73} @section Pragma Invariant @@ -4218,7 +4241,7 @@ For further details on the use of this pragma, see the Ada 2012 documentation of the Type_Invariant aspect. @node Pragma Java_Constructor,Pragma Java_Interface,Pragma Invariant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-java-constructor}@anchor{73} +@anchor{gnat_rm/implementation_defined_pragmas pragma-java-constructor}@anchor{74} @section Pragma Java_Constructor @@ -4236,7 +4259,7 @@ See section 7.3.2 of the for related information. @node Pragma Java_Interface,Pragma Keep_Names,Pragma Java_Constructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-java-interface}@anchor{74} +@anchor{gnat_rm/implementation_defined_pragmas pragma-java-interface}@anchor{75} @section Pragma Java_Interface @@ -4254,7 +4277,7 @@ See sections 7.1 and 7.2 of the for related information. @node Pragma Keep_Names,Pragma License,Pragma Java_Interface,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{75} +@anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{76} @section Pragma Keep_Names @@ -4274,7 +4297,7 @@ use a @cite{Discard_Names} pragma in the @code{gnat.adc} file, but you want to retain the names for specific enumeration types. @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{76} +@anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{77} @section Pragma License @@ -4369,7 +4392,7 @@ GPL, but no warning for @cite{GNAT.Sockets} which is part of the GNAT run time, and is therefore licensed under the modified GPL. @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{77} +@anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{78} @section Pragma Link_With @@ -4393,7 +4416,7 @@ separate arguments to the linker. In addition pragma Link_With allows multiple arguments, with the same effect as successive pragmas. @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{78} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{79} @section Pragma Linker_Alias @@ -4434,7 +4457,7 @@ end p; @end example @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{79} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{7a} @section Pragma Linker_Constructor @@ -4464,7 +4487,7 @@ listed above. Where possible, the use of Stand Alone Libraries is preferable to the use of this pragma. @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{7a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{7b} @section Pragma Linker_Destructor @@ -4487,7 +4510,7 @@ See @cite{pragma Linker_Constructor} for the set of restrictions that apply because of these specific contexts. @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{7b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{7c} @section Pragma Linker_Section @@ -4561,7 +4584,7 @@ end IO_Card; @end example @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{7c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{7d} @section Pragma Lock_Free @@ -4572,7 +4595,7 @@ Compilation fails if the compiler cannot generate lock-free code for the operations. @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{7d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{7e} @section Pragma Loop_Invariant @@ -4605,7 +4628,7 @@ attribute can only be used within the expression of a @cite{Loop_Invariant} pragma. For full details, see documentation of attribute @cite{Loop_Entry}. @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{7e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{7f} @section Pragma Loop_Optimize @@ -4667,7 +4690,7 @@ compiler in order to enable the relevant optimizations, that is to say vectorization. @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{7f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{80} @section Pragma Loop_Variant @@ -4714,7 +4737,7 @@ The @cite{Loop_Entry} attribute may be used within the expressions of the @cite{Loop_Variant} pragma to refer to values on entry to the loop. @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{80} +@anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{81} @section Pragma Machine_Attribute @@ -4739,7 +4762,7 @@ for some attributes. For further information see @cite{GNU Compiler Collection (GCC) Internals}. @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{81} +@anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{82} @section Pragma Main @@ -4759,7 +4782,7 @@ This pragma is provided for compatibility with OpenVMS VAX Systems. It has no effect in GNAT, other than being syntax checked. @node Pragma Main_Storage,Pragma No_Body,Pragma Main,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{82} +@anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{83} @section Pragma Main_Storage @@ -4778,7 +4801,7 @@ This pragma is provided for compatibility with OpenVMS VAX Systems. It has no effect in GNAT, other than being syntax checked. @node Pragma No_Body,Pragma No_Elaboration_Code_All,Pragma Main_Storage,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{83} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{84} @section Pragma No_Body @@ -4801,7 +4824,7 @@ dummy body with a No_Body pragma ensures that there is no interference from earlier versions of the package body. @node Pragma No_Elaboration_Code_All,Pragma No_Inline,Pragma No_Body,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{84} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{85} @section Pragma No_Elaboration_Code_All @@ -4820,7 +4843,7 @@ current unit, it must also have the No_Elaboration_Code_All aspect set. It may be applied to package or subprogram specs or their generic versions. @node Pragma No_Inline,Pragma No_Return,Pragma No_Elaboration_Code_All,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{85} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{86} @section Pragma No_Inline @@ -4838,7 +4861,7 @@ in particular it is not subject to the use of option @emph{-gnatn} or pragma @cite{Inline_Always} for the same @cite{NAME}. @node Pragma No_Return,Pragma No_Run_Time,Pragma No_Inline,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{86} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{87} @section Pragma No_Return @@ -4865,7 +4888,7 @@ available in all earlier versions of Ada as an implementation-defined pragma. @node Pragma No_Run_Time,Pragma No_Strict_Aliasing,Pragma No_Return,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-run-time}@anchor{87} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-run-time}@anchor{88} @section Pragma No_Run_Time @@ -4881,7 +4904,7 @@ internal testing. The pragma has been superseded by the reconfigurable runtime capability of @cite{GNAT}. @node Pragma No_Strict_Aliasing,Pragma No_Tagged_Streams,Pragma No_Run_Time,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{88} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{89} @section Pragma No_Strict_Aliasing @@ -4903,7 +4926,7 @@ in the @cite{GNAT User's Guide}. This pragma currently has no effects on access to unconstrained array types. @node Pragma No_Tagged_Streams,Pragma Normalize_Scalars,Pragma No_Strict_Aliasing,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{89} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{8a} @section Pragma No_Tagged_Streams @@ -4938,7 +4961,7 @@ applies to a complete hierarchy (this is necessary to deal with the class-wide dispatching versions of the stream routines). @node Pragma Normalize_Scalars,Pragma Obsolescent,Pragma No_Tagged_Streams,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{8a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{8b} @section Pragma Normalize_Scalars @@ -5020,7 +5043,7 @@ will always generate an invalid value if one exists. @end table @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{8b}@anchor{gnat_rm/implementation_defined_pragmas id2}@anchor{8c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{8c}@anchor{gnat_rm/implementation_defined_pragmas id2}@anchor{8d} @section Pragma Obsolescent @@ -5116,7 +5139,7 @@ So if you specify "Entity =>" for the Entity argument, and a Message argument is present, it must be preceded by "Message =>". @node Pragma Optimize_Alignment,Pragma Ordered,Pragma Obsolescent,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{8d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{8e} @section Pragma Optimize_Alignment @@ -5199,7 +5222,7 @@ latter are compiled by default in pragma Optimize_Alignment (Off) mode if no pragma appears at the start of the file. @node Pragma Ordered,Pragma Overflow_Mode,Pragma Optimize_Alignment,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{8e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{8f} @section Pragma Ordered @@ -5291,7 +5314,7 @@ For additional information please refer to the description of the @emph{-gnatw.u} switch in the GNAT User's Guide. @node Pragma Overflow_Mode,Pragma Overriding_Renamings,Pragma Ordered,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{8f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{90} @section Pragma Overflow_Mode @@ -5330,7 +5353,7 @@ The pragma @cite{Unsuppress (Overflow_Check)} unsuppresses (enables) overflow checking, but does not affect the overflow mode. @node Pragma Overriding_Renamings,Pragma Partition_Elaboration_Policy,Pragma Overflow_Mode,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{90} +@anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{91} @section Pragma Overriding_Renamings @@ -5365,7 +5388,7 @@ RM 8.3 (15) stipulates that an overridden operation is not visible within the declaration of the overriding operation. @node Pragma Partition_Elaboration_Policy,Pragma Part_Of,Pragma Overriding_Renamings,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{91} +@anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{92} @section Pragma Partition_Elaboration_Policy @@ -5382,7 +5405,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Part_Of,Pragma Passive,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{92} +@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{93} @section Pragma Part_Of @@ -5390,7 +5413,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.2.6. @node Pragma Passive,Pragma Persistent_BSS,Pragma Part_Of,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{93} +@anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{94} @section Pragma Passive @@ -5414,7 +5437,7 @@ For more information on the subject of passive tasks, see the section 'Passive Task Optimization' in the GNAT Users Guide. @node Pragma Persistent_BSS,Pragma Polling,Pragma Passive,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{94} +@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{95} @section Pragma Persistent_BSS @@ -5445,7 +5468,7 @@ If this pragma is used on a target where this feature is not supported, then the pragma will be ignored. See also @cite{pragma Linker_Section}. @node Pragma Polling,Pragma Post,Pragma Persistent_BSS,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-polling}@anchor{95} +@anchor{gnat_rm/implementation_defined_pragmas pragma-polling}@anchor{96} @section Pragma Polling @@ -5487,7 +5510,7 @@ Note that polling can also be enabled by use of the @emph{-gnatP} switch. See the section on switches for gcc in the @cite{GNAT User's Guide}. @node Pragma Post,Pragma Postcondition,Pragma Polling,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{96} +@anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{97} @section Pragma Post @@ -5512,7 +5535,7 @@ appear at the start of the declarations in a subprogram body (preceded only by other pragmas). @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{97} +@anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{98} @section Pragma Postcondition @@ -5677,7 +5700,7 @@ Ada 2012, and has been retained in its original form for compatibility purposes. @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{98} +@anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{99} @section Pragma Post_Class @@ -5712,7 +5735,7 @@ policy that controls this pragma is @cite{Post'Class}, not @cite{Post_Class}. @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{99} +@anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{9a} @section Pragma Pre @@ -5737,7 +5760,7 @@ appear at the start of the declarations in a subprogram body (preceded only by other pragmas). @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{9a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{9b} @section Pragma Precondition @@ -5796,7 +5819,7 @@ Ada 2012, and has been retained in its original form for compatibility purposes. @node Pragma Predicate,Pragma Preelaborable_Initialization,Pragma Precondition,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{9b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{9c} @section Pragma Predicate @@ -5850,7 +5873,7 @@ defined for subtype B). When following this approach, the use of predicates should be avoided. @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{9c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{9d} @section Pragma Preelaborable_Initialization @@ -5865,7 +5888,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Prefix_Exception_Messages,Pragma Pre_Class,Pragma Preelaborable_Initialization,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{9d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{9e} @section Pragma Prefix_Exception_Messages @@ -5896,7 +5919,7 @@ prefixing in this case, you can always call @cite{GNAT.Source_Info.Enclosing_Entity} and prepend the string manually. @node Pragma Pre_Class,Pragma Priority_Specific_Dispatching,Pragma Prefix_Exception_Messages,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{9e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{9f} @section Pragma Pre_Class @@ -5931,7 +5954,7 @@ policy that controls this pragma is @cite{Pre'Class}, not @cite{Pre_Class}. @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{9f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{a0} @section Pragma Priority_Specific_Dispatching @@ -5955,7 +5978,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Profile,Pragma Profile_Warnings,Pragma Priority_Specific_Dispatching,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{a0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{a1} @section Pragma Profile @@ -6203,7 +6226,7 @@ conforming Ada constructs. The profile enables the following three pragmas: @end itemize @node Pragma Profile_Warnings,Pragma Propagate_Exceptions,Pragma Profile,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{a1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{a2} @section Pragma Profile_Warnings @@ -6221,7 +6244,7 @@ violations of the profile generate warning messages instead of error messages. @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Profile_Warnings,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{a2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{a3} @section Pragma Propagate_Exceptions @@ -6240,7 +6263,7 @@ purposes. It used to be used in connection with optimization of a now-obsolete mechanism for implementation of exceptions. @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{a3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{a4} @section Pragma Provide_Shift_Operators @@ -6260,7 +6283,7 @@ including the function declarations for these five operators, together with the pragma Import (Intrinsic, ...) statements. @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{a4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{a5} @section Pragma Psect_Object @@ -6280,7 +6303,7 @@ EXTERNAL_SYMBOL ::= This pragma is identical in effect to pragma @cite{Common_Object}. @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{a5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{a6} @section Pragma Pure_Function @@ -6342,7 +6365,7 @@ unit is not a Pure unit in the categorization sense. So for example, a function thus marked is free to @cite{with} non-pure units. @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{a6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{a7} @section Pragma Rational @@ -6360,7 +6383,7 @@ pragma Profile (Rational); @end example @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{a7} +@anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{a8} @section Pragma Ravenscar @@ -6380,7 +6403,7 @@ pragma Profile (Ravenscar); which is the preferred method of setting the @cite{Ravenscar} profile. @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{a8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{a9} @section Pragma Refined_Depends @@ -6388,7 +6411,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.5. @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{a9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{aa} @section Pragma Refined_Global @@ -6396,7 +6419,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.4. @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{aa} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{ab} @section Pragma Refined_Post @@ -6404,7 +6427,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.2.7. @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{ab} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{ac} @section Pragma Refined_State @@ -6412,7 +6435,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.2.2. @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{ac} +@anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{ad} @section Pragma Relative_Deadline @@ -6427,7 +6450,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Remote_Access_Type,Pragma Restricted_Run_Time,Pragma Relative_Deadline,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{ad} +@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{ae} @section Pragma Remote_Access_Type @@ -6453,7 +6476,7 @@ pertaining to remote access to class-wide types. At instantiation, the actual type must be a remote access to class-wide type. @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Remote_Access_Type,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{ae} +@anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{af} @section Pragma Restricted_Run_Time @@ -6474,7 +6497,7 @@ which is the preferred method of setting the restricted run time profile. @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{af} +@anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{b0} @section Pragma Restriction_Warnings @@ -6512,7 +6535,7 @@ generating a warning, but any other use of implementation defined pragmas will cause a warning to be generated. @node Pragma Reviewable,Pragma Share_Generic,Pragma Restriction_Warnings,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{b0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{b1} @section Pragma Reviewable @@ -6616,7 +6639,7 @@ comprehensive messages identifying possible problems based on this information. @node Pragma Share_Generic,Pragma Shared,Pragma Reviewable,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{b1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{b2} @section Pragma Share_Generic @@ -6634,7 +6657,7 @@ than to check that the given names are all names of generic units or generic instances. @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{b2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{b3} @section Pragma Shared @@ -6642,7 +6665,7 @@ This pragma is provided for compatibility with Ada 83. The syntax and semantics are identical to pragma Atomic. @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{b3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{b4} @section Pragma Short_Circuit_And_Or @@ -6661,7 +6684,7 @@ within the file being compiled, it applies only to the file being compiled. There is no requirement that all units in a partition use this option. @node Pragma Short_Descriptors,Pragma Simple_Storage_Pool_Type,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{b4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{b5} @section Pragma Short_Descriptors @@ -6675,7 +6698,7 @@ This pragma is provided for compatibility with other Ada implementations. It is recognized but ignored by all current versions of GNAT. @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Short_Descriptors,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{b5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{b6} @section Pragma Simple_Storage_Pool_Type @@ -6729,7 +6752,7 @@ storage-management discipline). An object of a simple storage pool type can be associated with an access type by specifying the attribute -@ref{b6,,Simple_Storage_Pool}. For example: +@ref{b7,,Simple_Storage_Pool}. For example: @example My_Pool : My_Simple_Storage_Pool_Type; @@ -6739,11 +6762,11 @@ type Acc is access My_Data_Type; for Acc'Simple_Storage_Pool use My_Pool; @end example -See attribute @ref{b6,,Simple_Storage_Pool} +See attribute @ref{b7,,Simple_Storage_Pool} for further details. @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{b7}@anchor{gnat_rm/implementation_defined_pragmas id3}@anchor{b8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{b8}@anchor{gnat_rm/implementation_defined_pragmas id3}@anchor{b9} @section Pragma Source_File_Name @@ -6835,19 +6858,19 @@ aware of these pragmas, and so other tools that use the projet file would not be aware of the intended naming conventions. If you are using project files, file naming is controlled by Source_File_Name_Project pragmas, which are usually supplied automatically by the project manager. A pragma -Source_File_Name cannot appear after a @ref{b9,,Pragma Source_File_Name_Project}. +Source_File_Name cannot appear after a @ref{ba,,Pragma Source_File_Name_Project}. For more details on the use of the @cite{Source_File_Name} pragma, see the sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes' in the :title:`GNAT User's Guide}. @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{ba}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{b9} +@anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{bb}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{ba} @section 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 cannot appear after a @ref{b7,,Pragma Source_File_Name}, and +It cannot appear after a @ref{b8,,Pragma Source_File_Name}, and most importantly, once pragma Source_File_Name_Project appears, no further Source_File_Name pragmas are allowed. @@ -6859,7 +6882,7 @@ Source_File_Name or Source_File_Name_Project pragmas (which would not be known to the project manager). @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{bb} +@anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{bc} @section Pragma Source_Reference @@ -6883,7 +6906,7 @@ string expression other than a string literal. This is because its value is needed for error messages issued by all phases of the compiler. @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{bc} +@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{bd} @section Pragma SPARK_Mode @@ -6965,7 +6988,7 @@ SPARK_Mode (@cite{Off}), then that pragma will need to be repeated in the package body. @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{bd} +@anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{be} @section Pragma Static_Elaboration_Desired @@ -6989,7 +7012,7 @@ construction of larger aggregates with static components that include an others choice.) @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{be} +@anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{bf} @section Pragma Stream_Convert @@ -7066,7 +7089,7 @@ the pragma is silently ignored, and the default implementation of the stream attributes is used instead. @node Pragma Style_Checks,Pragma Subtitle,Pragma Stream_Convert,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{bf} +@anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{c0} @section Pragma Style_Checks @@ -7139,7 +7162,7 @@ Rf2 : Integer := ARG; -- OK, no error @end example @node Pragma Subtitle,Pragma Suppress,Pragma Style_Checks,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{c0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{c1} @section Pragma Subtitle @@ -7153,7 +7176,7 @@ This pragma is recognized for compatibility with other Ada compilers but is ignored by GNAT. @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{c1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{c2} @section Pragma Suppress @@ -7175,6 +7198,8 @@ names that are implementation defined (as permitted by the RM): on addresses used in address clauses. Such checks can also be suppressed by suppressing range checks, but the specific use of @cite{Alignment_Check} allows suppression of alignment checks without suppressing other range checks. +Note that @cite{Alignment_Check} is suppressed by default on machines (such as +the x86) with non-strict alignment. @item @cite{Atomic_Synchronization} can be used to suppress the special memory @@ -7217,7 +7242,7 @@ Of course, run-time checks are omitted whenever the compiler can prove that they will not fail, whether or not checks are suppressed. @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{c2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{c3} @section Pragma Suppress_All @@ -7236,7 +7261,7 @@ The use of the standard Ada pragma @cite{Suppress (All_Checks)} as a normal configuration pragma is the preferred usage in GNAT. @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{c3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{c4} @section Pragma Suppress_Debug_Info @@ -7251,7 +7276,7 @@ for the specified entity. It is intended primarily for use in debugging the debugger, and navigating around debugger problems. @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{c4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{c5} @section Pragma Suppress_Exception_Locations @@ -7274,7 +7299,7 @@ a partition, so it is fine to have some units within a partition compiled with this pragma and others compiled in normal mode without it. @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{c5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{c6} @section Pragma Suppress_Initialization @@ -7319,7 +7344,7 @@ is suppressed, just as though its subtype had been given in a pragma Suppress_Initialization, as described above. @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{c6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{c7} @section Pragma Task_Name @@ -7375,7 +7400,7 @@ end; @end example @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{c7} +@anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{c8} @section Pragma Task_Storage @@ -7395,7 +7420,7 @@ created, depending on the target. This pragma can appear anywhere a type. @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{c8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{c9} @section Pragma Test_Case @@ -7451,7 +7476,7 @@ postcondition. Mode @cite{Robustness} indicates that the precondition and postcondition of the subprogram should be ignored for this test case. @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{c9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{ca} @section Pragma Thread_Local_Storage @@ -7485,7 +7510,7 @@ If this pragma is used on a system where @cite{TLS} is not supported, then an error message will be generated and the program will be rejected. @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{ca} +@anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{cb} @section Pragma Time_Slice @@ -7501,7 +7526,7 @@ It is ignored if it is used in a system that does not allow this control, or if it appears in other than the main program unit. @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{cb} +@anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{cc} @section Pragma Title @@ -7526,7 +7551,7 @@ notation is used, and named and positional notation can be mixed following the normal rules for procedure calls in Ada. @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{cc} +@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{cd} @section Pragma Type_Invariant @@ -7547,7 +7572,7 @@ controlled by the assertion identifier @cite{Type_Invariant} rather than @cite{Invariant}. @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{cd} +@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{ce} @section Pragma Type_Invariant_Class @@ -7574,7 +7599,7 @@ policy that controls this pragma is @cite{Type_Invariant'Class}, not @cite{Type_Invariant_Class}. @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{ce} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{cf} @section Pragma Unchecked_Union @@ -7594,7 +7619,7 @@ version in all language modes (Ada 83, Ada 95, and Ada 2005). For full details, consult the Ada 2012 Reference Manual, section B.3.3. @node Pragma Unevaluated_Use_Of_Old,Pragma Unimplemented_Unit,Pragma Unchecked_Union,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{cf} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{d0} @section Pragma Unevaluated_Use_Of_Old @@ -7649,7 +7674,7 @@ uses up to the end of the corresponding statement sequence or sequence of package declarations. @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{d0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{d1} @section Pragma Unimplemented_Unit @@ -7669,7 +7694,7 @@ The abort only happens if code is being generated. Thus you can use specs of unimplemented packages in syntax or semantic checking mode. @node Pragma Universal_Aliasing,Pragma Universal_Data,Pragma Unimplemented_Unit,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{d1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{d2} @section Pragma Universal_Aliasing @@ -7688,7 +7713,7 @@ situations in which it must be suppressed, see the section on @cite{Optimization and Strict Aliasing} in the @cite{GNAT User's Guide}. @node Pragma Universal_Data,Pragma Unmodified,Pragma Universal_Aliasing,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-data}@anchor{d2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-data}@anchor{d3} @section Pragma Universal_Data @@ -7712,7 +7737,7 @@ of this pragma is also available by applying the -univ switch on the compilations of units where universal addressing of the data is desired. @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Data,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{d3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{d4} @section Pragma Unmodified @@ -7746,7 +7771,7 @@ Thus it is never necessary to use @cite{pragma Unmodified} for such variables, though it is harmless to do so. @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{d4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{d5} @section Pragma Unreferenced @@ -7790,7 +7815,7 @@ Note that if a warning is desired for all calls to a given subprogram, regardless of whether they occur in the same unit as the subprogram declaration, then this pragma should not be used (calls from another unit would not be flagged); pragma Obsolescent can be used instead -for this purpose, see @ref{8b,,Pragma Obsolescent}. +for this purpose, see @ref{8c,,Pragma Obsolescent}. The second form of pragma @cite{Unreferenced} is used within a context clause. In this case the arguments must be unit names of units previously @@ -7806,7 +7831,7 @@ Thus it is never necessary to use @cite{pragma Unreferenced} for such variables, though it is harmless to do so. @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{d5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{d6} @section Pragma Unreferenced_Objects @@ -7831,7 +7856,7 @@ compiler will automatically suppress unwanted warnings about these variables not being referenced. @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{d6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{d7} @section Pragma Unreserve_All_Interrupts @@ -7867,7 +7892,7 @@ handled, see pragma @cite{Interrupt_State}, which subsumes the functionality of the @cite{Unreserve_All_Interrupts} pragma. @node Pragma Unsuppress,Pragma Use_VADS_Size,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{d7} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{d8} @section Pragma Unsuppress @@ -7903,7 +7928,7 @@ a number of implementation-defined check names. See description of pragma @cite{Suppress} for full details. @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unsuppress,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{d8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{d9} @section Pragma Use_VADS_Size @@ -7927,7 +7952,7 @@ as implemented in the VADS compiler. See description of the VADS_Size attribute for further details. @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{d9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{da} @section Pragma Validity_Checks @@ -7984,7 +8009,7 @@ A := C; -- C will be validity checked @end example @node Pragma Volatile,Pragma Warning_As_Error,Pragma Validity_Checks,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{da} +@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{db} @section Pragma Volatile @@ -8002,7 +8027,7 @@ implementation of pragma Volatile is upwards compatible with the implementation in DEC Ada 83. @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{db} +@anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{dc} @section Pragma Warning_As_Error @@ -8037,7 +8062,7 @@ as shown in the example below, to treat a class of warnings as errors. The above use of patterns to match the message applies only to warning messages generated by the front end. This pragma can also be applied to -warnings provided by the back end and mentioned in @ref{dc,,Pragma Warnings}. +warnings provided by the back end and mentioned in @ref{dd,,Pragma Warnings}. By using a single full @emph{-Wxxx} switch in the pragma, such warnings can also be treated as errors. @@ -8087,7 +8112,7 @@ the tag is changed from "warning:" to "error:" and the string "[warning-as-error]" is appended to the end of the message. @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{dd}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{dc} +@anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{de}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{dd} @section Pragma Warnings @@ -8239,7 +8264,7 @@ selectively for each tool, and as a consequence to detect useless pragma Warnings with switch @cite{-gnatw.w}. @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{de} +@anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{df} @section Pragma Weak_External @@ -8290,7 +8315,7 @@ end External_Module; @end example @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{df} +@anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{e0} @section Pragma Wide_Character_Encoding @@ -8317,7 +8342,7 @@ encoding within that file, and does not affect withed units, specs, or subunits. @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top -@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{e0}@anchor{gnat_rm/implementation_defined_aspects doc}@anchor{e1}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{e2} +@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{e1}@anchor{gnat_rm/implementation_defined_aspects doc}@anchor{e2}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{e3} @chapter Implementation Defined Aspects @@ -8425,7 +8450,7 @@ or attribute definition clause. @end menu @node Aspect Abstract_State,Annotate,,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{e3} +@anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{e4} @section Aspect Abstract_State @@ -8434,7 +8459,7 @@ or attribute definition clause. This aspect is equivalent to pragma @cite{Abstract_State}. @node Annotate,Aspect Async_Readers,Aspect Abstract_State,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects annotate}@anchor{e4} +@anchor{gnat_rm/implementation_defined_aspects annotate}@anchor{e5} @section Annotate @@ -8460,7 +8485,7 @@ Equivalent to @cite{pragma Annotate (ID@comma{} ID @{@comma{} ARG@}@comma{} Enti @end table @node Aspect Async_Readers,Aspect Async_Writers,Annotate,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{e5} +@anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{e6} @section Aspect Async_Readers @@ -8469,7 +8494,7 @@ Equivalent to @cite{pragma Annotate (ID@comma{} ID @{@comma{} ARG@}@comma{} Enti This boolean aspect is equivalent to pragma @cite{Async_Readers}. @node Aspect Async_Writers,Aspect Contract_Cases,Aspect Async_Readers,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{e6} +@anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{e7} @section Aspect Async_Writers @@ -8478,7 +8503,7 @@ This boolean aspect is equivalent to pragma @cite{Async_Readers}. This boolean aspect is equivalent to pragma @cite{Async_Writers}. @node Aspect Contract_Cases,Aspect Depends,Aspect Async_Writers,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{e7} +@anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{e8} @section Aspect Contract_Cases @@ -8489,7 +8514,7 @@ of clauses being enclosed in parentheses so that syntactically it is an aggregate. @node Aspect Depends,Aspect Dimension,Aspect Contract_Cases,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{e8} +@anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{e9} @section Aspect Depends @@ -8498,7 +8523,7 @@ aggregate. This aspect is equivalent to pragma @cite{Depends}. @node Aspect Dimension,Aspect Dimension_System,Aspect Depends,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{e9} +@anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{ea} @section Aspect Dimension @@ -8534,7 +8559,7 @@ Note that when the dimensioned type is an integer type, then any dimension value must be an integer literal. @node Aspect Dimension_System,Aspect Effective_Reads,Aspect Dimension,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{ea} +@anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{eb} @section Aspect Dimension_System @@ -8594,7 +8619,7 @@ See section 'Performing Dimensionality Analysis in GNAT' in the GNAT Users Guide for detailed examples of use of the dimension system. @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Dimension_System,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{eb} +@anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{ec} @section Aspect Effective_Reads @@ -8603,7 +8628,7 @@ Guide for detailed examples of use of the dimension system. This aspect is equivalent to pragma @cite{Effective_Reads}. @node Aspect Effective_Writes,Aspect Favor_Top_Level,Aspect Effective_Reads,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{ec} +@anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{ed} @section Aspect Effective_Writes @@ -8612,7 +8637,7 @@ This aspect is equivalent to pragma @cite{Effective_Reads}. This aspect is equivalent to pragma @cite{Effective_Writes}. @node Aspect Favor_Top_Level,Aspect Global,Aspect Effective_Writes,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{ed} +@anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{ee} @section Aspect Favor_Top_Level @@ -8621,7 +8646,7 @@ This aspect is equivalent to pragma @cite{Effective_Writes}. This boolean aspect is equivalent to pragma @cite{Favor_Top_Level}. @node Aspect Global,Aspect Initial_Condition,Aspect Favor_Top_Level,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{ee} +@anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{ef} @section Aspect Global @@ -8630,7 +8655,7 @@ This boolean aspect is equivalent to pragma @cite{Favor_Top_Level}. This aspect is equivalent to pragma @cite{Global}. @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{ef} +@anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{f0} @section Aspect Initial_Condition @@ -8639,7 +8664,7 @@ This aspect is equivalent to pragma @cite{Global}. This aspect is equivalent to pragma @cite{Initial_Condition}. @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{f0} +@anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{f1} @section Aspect Initializes @@ -8648,7 +8673,7 @@ This aspect is equivalent to pragma @cite{Initial_Condition}. This aspect is equivalent to pragma @cite{Initializes}. @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{f1} +@anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{f2} @section Aspect Inline_Always @@ -8657,7 +8682,7 @@ This aspect is equivalent to pragma @cite{Initializes}. This boolean aspect is equivalent to pragma @cite{Inline_Always}. @node Aspect Invariant,Aspect Invariant'Class,Aspect Inline_Always,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{f2} +@anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{f3} @section Aspect Invariant @@ -8668,7 +8693,7 @@ synonym for the language defined aspect @cite{Type_Invariant} except that it is separately controllable using pragma @cite{Assertion_Policy}. @node Aspect Invariant'Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{f3} +@anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{f4} @section Aspect Invariant'Class @@ -8679,7 +8704,7 @@ synonym for the language defined aspect @cite{Type_Invariant'Class} except that it is separately controllable using pragma @cite{Assertion_Policy}. @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant'Class,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{f4} +@anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{f5} @section Aspect Iterable @@ -8755,7 +8780,7 @@ function Get_Element (Cont : Container; Position : Cursor) return Element_Type; This aspect is used in the GNAT-defined formal container packages. @node Aspect Linker_Section,Aspect Lock_Free,Aspect Iterable,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{f5} +@anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{f6} @section Aspect Linker_Section @@ -8764,7 +8789,7 @@ This aspect is used in the GNAT-defined formal container packages. This aspect is equivalent to an @cite{Linker_Section} pragma. @node Aspect Lock_Free,Aspect No_Elaboration_Code_All,Aspect Linker_Section,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{f6} +@anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{f7} @section Aspect Lock_Free @@ -8773,7 +8798,7 @@ This aspect is equivalent to an @cite{Linker_Section} pragma. This boolean aspect is equivalent to pragma @cite{Lock_Free}. @node Aspect No_Elaboration_Code_All,Aspect No_Tagged_Streams,Aspect Lock_Free,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{f7} +@anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{f8} @section Aspect No_Elaboration_Code_All @@ -8783,7 +8808,7 @@ This aspect is equivalent to a @cite{pragma No_Elaboration_Code_All} statement for a program unit. @node Aspect No_Tagged_Streams,Aspect Object_Size,Aspect No_Elaboration_Code_All,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{f8} +@anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{f9} @section Aspect No_Tagged_Streams @@ -8794,7 +8819,7 @@ argument specifying a root tagged type (thus this aspect can only be applied to such a type). @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Tagged_Streams,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{f9} +@anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{fa} @section Aspect Object_Size @@ -8804,7 +8829,7 @@ This aspect is equivalent to an @cite{Object_Size} attribute definition clause. @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{fa} +@anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{fb} @section Aspect Obsolescent @@ -8815,7 +8840,7 @@ evaluation of this aspect happens at the point of occurrence, it is not delayed until the freeze point. @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{fb} +@anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{fc} @section Aspect Part_Of @@ -8824,7 +8849,7 @@ delayed until the freeze point. This aspect is equivalent to pragma @cite{Part_Of}. @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{fc} +@anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{fd} @section Aspect Persistent_BSS @@ -8833,7 +8858,7 @@ This aspect is equivalent to pragma @cite{Part_Of}. This boolean aspect is equivalent to pragma @cite{Persistent_BSS}. @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{fd} +@anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{fe} @section Aspect Predicate @@ -8847,7 +8872,7 @@ expression. It is also separately controllable using pragma @cite{Assertion_Policy}. @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{fe} +@anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{ff} @section Aspect Pure_Function @@ -8856,7 +8881,7 @@ expression. It is also separately controllable using pragma This boolean aspect is equivalent to pragma @cite{Pure_Function}. @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{ff} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{100} @section Aspect Refined_Depends @@ -8865,7 +8890,7 @@ This boolean aspect is equivalent to pragma @cite{Pure_Function}. This aspect is equivalent to pragma @cite{Refined_Depends}. @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{100} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{101} @section Aspect Refined_Global @@ -8874,7 +8899,7 @@ This aspect is equivalent to pragma @cite{Refined_Depends}. This aspect is equivalent to pragma @cite{Refined_Global}. @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{101} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{102} @section Aspect Refined_Post @@ -8883,7 +8908,7 @@ This aspect is equivalent to pragma @cite{Refined_Global}. This aspect is equivalent to pragma @cite{Refined_Post}. @node Aspect Refined_State,Aspect Remote_Access_Type,Aspect Refined_Post,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{102} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{103} @section Aspect Refined_State @@ -8892,7 +8917,7 @@ This aspect is equivalent to pragma @cite{Refined_Post}. This aspect is equivalent to pragma @cite{Refined_State}. @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Refined_State,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{103} +@anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{104} @section Aspect Remote_Access_Type @@ -8901,7 +8926,7 @@ This aspect is equivalent to pragma @cite{Refined_State}. This aspect is equivalent to pragma @cite{Remote_Access_Type}. @node Aspect Scalar_Storage_Order,Aspect Shared,Aspect Remote_Access_Type,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{104} +@anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{105} @section Aspect Scalar_Storage_Order @@ -8911,7 +8936,7 @@ This aspect is equivalent to a @cite{Scalar_Storage_Order} attribute definition clause. @node Aspect Shared,Aspect Simple_Storage_Pool,Aspect Scalar_Storage_Order,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{105} +@anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{106} @section Aspect Shared @@ -8921,7 +8946,7 @@ This boolean aspect is equivalent to pragma @cite{Shared}, and is thus a synonym for aspect @cite{Atomic}. @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Shared,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{106} +@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{107} @section Aspect Simple_Storage_Pool @@ -8931,7 +8956,7 @@ This aspect is equivalent to a @cite{Simple_Storage_Pool} attribute definition clause. @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{107} +@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{108} @section Aspect Simple_Storage_Pool_Type @@ -8940,7 +8965,7 @@ attribute definition clause. This boolean aspect is equivalent to pragma @cite{Simple_Storage_Pool_Type}. @node Aspect SPARK_Mode,Aspect Suppress_Debug_Info,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{108} +@anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{109} @section Aspect SPARK_Mode @@ -8951,7 +8976,7 @@ may be specified for either or both of the specification and body of a subprogram or package. @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect SPARK_Mode,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{109} +@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{10a} @section Aspect Suppress_Debug_Info @@ -8960,7 +8985,7 @@ of a subprogram or package. This boolean aspect is equivalent to pragma @cite{Suppress_Debug_Info}. @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{10a} +@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{10b} @section Aspect Suppress_Initialization @@ -8969,7 +8994,7 @@ This boolean aspect is equivalent to pragma @cite{Suppress_Debug_Info}. This boolean aspect is equivalent to pragma @cite{Suppress_Initialization}. @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{10b} +@anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{10c} @section Aspect Test_Case @@ -8978,7 +9003,7 @@ This boolean aspect is equivalent to pragma @cite{Suppress_Initialization}. This aspect is equivalent to pragma @cite{Test_Case}. @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{10c} +@anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{10d} @section Aspect Thread_Local_Storage @@ -8987,7 +9012,7 @@ This aspect is equivalent to pragma @cite{Test_Case}. This boolean aspect is equivalent to pragma @cite{Thread_Local_Storage}. @node Aspect Universal_Aliasing,Aspect Universal_Data,Aspect Thread_Local_Storage,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{10d} +@anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{10e} @section Aspect Universal_Aliasing @@ -8996,7 +9021,7 @@ This boolean aspect is equivalent to pragma @cite{Thread_Local_Storage}. This boolean aspect is equivalent to pragma @cite{Universal_Aliasing}. @node Aspect Universal_Data,Aspect Unmodified,Aspect Universal_Aliasing,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-universal-data}@anchor{10e} +@anchor{gnat_rm/implementation_defined_aspects aspect-universal-data}@anchor{10f} @section Aspect Universal_Data @@ -9005,7 +9030,7 @@ This boolean aspect is equivalent to pragma @cite{Universal_Aliasing}. This aspect is equivalent to pragma @cite{Universal_Data}. @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Data,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{10f} +@anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{110} @section Aspect Unmodified @@ -9014,7 +9039,7 @@ This aspect is equivalent to pragma @cite{Universal_Data}. This boolean aspect is equivalent to pragma @cite{Unmodified}. @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{110} +@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{111} @section Aspect Unreferenced @@ -9025,7 +9050,7 @@ in the case of formal parameters, it is not permitted to have aspects for a formal parameter, so in this case the pragma form must be used. @node Aspect Unreferenced_Objects,Aspect Value_Size,Aspect Unreferenced,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{111} +@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{112} @section Aspect Unreferenced_Objects @@ -9034,7 +9059,7 @@ a formal parameter, so in this case the pragma form must be used. This boolean aspect is equivalent to pragma @cite{Unreferenced_Objects}. @node Aspect Value_Size,Aspect Warnings,Aspect Unreferenced_Objects,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{112} +@anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{113} @section Aspect Value_Size @@ -9044,7 +9069,7 @@ This aspect is equivalent to a @cite{Value_Size} attribute definition clause. @node Aspect Warnings,,Aspect Value_Size,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{113} +@anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{114} @section Aspect Warnings @@ -9055,7 +9080,7 @@ where the first argument is @cite{ON} or @cite{OFF} and the second argument is the entity. @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top -@anchor{gnat_rm/implementation_defined_attributes doc}@anchor{114}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{115} +@anchor{gnat_rm/implementation_defined_attributes doc}@anchor{115}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{116} @chapter Implementation Defined Attributes @@ -9091,6 +9116,7 @@ consideration, you should minimize the use of these attributes. * Attribute Constrained:: * Attribute Default_Bit_Order:: * Attribute Default_Scalar_Storage_Order:: +* Attribute Deref:: * Attribute Descriptor_Size:: * Attribute Elaborated:: * Attribute Elab_Body:: @@ -9156,7 +9182,7 @@ consideration, you should minimize the use of these attributes. @end menu @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{116} +@anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{117} @section Attribute Abort_Signal @@ -9170,7 +9196,7 @@ completely outside the normal semantics of Ada, for a user program to intercept the abort exception). @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{117} +@anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{118} @section Attribute Address_Size @@ -9186,7 +9212,7 @@ reference to System.Address'Size is non-static because Address is a private type. @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{118} +@anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{119} @section Attribute Asm_Input @@ -9200,10 +9226,10 @@ to be a static expression, and is the constraint for the parameter, value to be used as the input argument. The possible values for the constant are the same as those used in the RTL, and are dependent on the configuration file used to built the GCC back end. -@ref{119,,Machine Code Insertions} +@ref{11a,,Machine Code Insertions} @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{11a} +@anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{11b} @section Attribute Asm_Output @@ -9219,10 +9245,10 @@ result. The possible values for constraint are the same as those used in the RTL, and are dependent on the configuration file used to build the GCC back end. If there are no output operands, then this argument may either be omitted, or explicitly given as @cite{No_Output_Operands}. -@ref{119,,Machine Code Insertions} +@ref{11a,,Machine Code Insertions} @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{11b} +@anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{11c} @section Attribute Atomic_Always_Lock_Free @@ -9234,7 +9260,7 @@ and False otherwise. The result indicate whether atomic operations are supported by the target for the given type. @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{11c} +@anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{11d} @section Attribute Bit @@ -9265,7 +9291,7 @@ This attribute is designed to be compatible with the DEC Ada 83 definition and implementation of the @cite{Bit} attribute. @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{11d} +@anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{11e} @section Attribute Bit_Position @@ -9280,7 +9306,7 @@ type @cite{Universal_Integer}. The value depends only on the field the containing record @cite{R}. @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{11e} +@anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{11f} @section Attribute Code_Address @@ -9323,7 +9349,7 @@ the same value as is returned by the corresponding @cite{'Address} attribute. @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{11f} +@anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{120} @section Attribute Compiler_Version @@ -9334,7 +9360,7 @@ prefix) yields a static string identifying the version of the compiler being used to compile the unit containing the attribute reference. @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{120} +@anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{121} @section Attribute Constrained @@ -9349,7 +9375,7 @@ record type without discriminants is always @cite{True}. This usage is compatible with older Ada compilers, including notably DEC Ada. @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{121} +@anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{122} @section Attribute Default_Bit_Order @@ -9365,8 +9391,8 @@ as a @cite{Pos} value (0 for @cite{High_Order_First}, 1 for @cite{Low_Order_First}). This is used to construct the definition of @cite{Default_Bit_Order} in package @cite{System}. -@node Attribute Default_Scalar_Storage_Order,Attribute Descriptor_Size,Attribute Default_Bit_Order,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{122} +@node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes +@anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{123} @section Attribute Default_Scalar_Storage_Order @@ -9382,8 +9408,21 @@ order (as specified using pragma @cite{Default_Scalar_Storage_Order}, or equal to @cite{Default_Bit_Order} if unspecified) as a @cite{System.Bit_Order} value. This is a static attribute. -@node Attribute Descriptor_Size,Attribute Elaborated,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{123} +@node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes +@anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{124} +@section Attribute Deref + + +@geindex Deref + +The attribute @cite{typ'Deref(expr)} where @cite{expr} is of type @cite{System.Address} yields +the variable of type @cite{typ} that is located at the given address. It is similar +to @cite{(totyp (expr).all)}, where @cite{totyp} is an unchecked conversion from address to +a named access-to-@cite{typ} type, except that it yields a variable, so it can be +used on the left side of an assignment. + +@node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes +@anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{125} @section Attribute Descriptor_Size @@ -9410,7 +9449,7 @@ In the example above, the descriptor contains two values of type a size of 31 bits and an alignment of 4, the descriptor size is @cite{2 * Positive'Size + 2} or 64 bits. @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{124} +@anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{126} @section Attribute Elaborated @@ -9425,7 +9464,7 @@ units has been completed. An exception is for units which need no elaboration, the value is always False for such units. @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{125} +@anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{127} @section Attribute Elab_Body @@ -9441,7 +9480,7 @@ e.g., if it is necessary to do selective re-elaboration to fix some error. @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{126} +@anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{128} @section Attribute Elab_Spec @@ -9457,7 +9496,7 @@ Ada code, e.g., if it is necessary to do selective re-elaboration to fix some error. @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{127} +@anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{129} @section Attribute Elab_Subp_Body @@ -9471,7 +9510,7 @@ elaboration procedure by the binder in CodePeer mode only and is unrecognized otherwise. @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{128} +@anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{12a} @section Attribute Emax @@ -9484,7 +9523,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{129} +@anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{12b} @section Attribute Enabled @@ -9508,7 +9547,7 @@ a @cite{pragma Suppress} or @cite{pragma Unsuppress} before instantiating the package or subprogram, controlling whether the check will be present. @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{12a} +@anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{12c} @section Attribute Enum_Rep @@ -9545,7 +9584,7 @@ integer calculation is done at run time, then the call to @cite{Enum_Rep} may raise @cite{Constraint_Error}. @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{12b} +@anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{12d} @section Attribute Enum_Val @@ -9568,7 +9607,7 @@ absence of an enumeration representation clause. This is a static attribute (i.e., the result is static if the argument is static). @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{12c} +@anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{12e} @section Attribute Epsilon @@ -9581,7 +9620,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Fast_Math,Attribute Fixed_Value,Attribute Epsilon,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{12d} +@anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{12f} @section Attribute Fast_Math @@ -9592,7 +9631,7 @@ prefix) yields a static Boolean value that is True if pragma @cite{Fast_Math} is active, and False otherwise. @node Attribute Fixed_Value,Attribute From_Any,Attribute Fast_Math,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{12e} +@anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{130} @section Attribute Fixed_Value @@ -9619,7 +9658,7 @@ This attribute is primarily intended for use in implementation of the input-output functions for fixed-point values. @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{12f} +@anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{131} @section Attribute From_Any @@ -9629,7 +9668,7 @@ This internal attribute is used for the generation of remote subprogram stubs in the context of the Distributed Systems Annex. @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{130} +@anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{132} @section Attribute Has_Access_Values @@ -9647,7 +9686,7 @@ definitions. If the attribute is applied to a generic private type, it indicates whether or not the corresponding actual type has access values. @node Attribute Has_Discriminants,Attribute Img,Attribute Has_Access_Values,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{131} +@anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{133} @section Attribute Has_Discriminants @@ -9663,7 +9702,7 @@ definitions. If the attribute is applied to a generic private type, it indicates whether or not the corresponding actual type has discriminants. @node Attribute Img,Attribute Integer_Value,Attribute Has_Discriminants,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{132} +@anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{134} @section Attribute Img @@ -9693,7 +9732,7 @@ that returns the appropriate string when called. This means that in an instantiation as a function parameter. @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Img,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{133} +@anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{135} @section Attribute Integer_Value @@ -9721,7 +9760,7 @@ This attribute is primarily intended for use in implementation of the standard input-output functions for fixed-point values. @node Attribute Invalid_Value,Attribute Iterable,Attribute Integer_Value,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{134} +@anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{136} @section Attribute Invalid_Value @@ -9735,7 +9774,7 @@ including the ability to modify the value with the binder -Sxx flag and relevant environment variables at run time. @node Attribute Iterable,Attribute Large,Attribute Invalid_Value,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{135} +@anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{137} @section Attribute Iterable @@ -9744,7 +9783,7 @@ relevant environment variables at run time. Equivalent to Aspect Iterable. @node Attribute Large,Attribute Library_Level,Attribute Iterable,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{136} +@anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{138} @section Attribute Large @@ -9757,7 +9796,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Library_Level,Attribute Lock_Free,Attribute Large,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{137} +@anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{139} @section Attribute Library_Level @@ -9783,7 +9822,7 @@ end Gen; @end example @node Attribute Lock_Free,Attribute Loop_Entry,Attribute Library_Level,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-lock-free}@anchor{138} +@anchor{gnat_rm/implementation_defined_attributes attribute-lock-free}@anchor{13a} @section Attribute Lock_Free @@ -9793,7 +9832,7 @@ end Gen; pragma @cite{Lock_Free} applies to P. @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Lock_Free,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{139} +@anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{13b} @section Attribute Loop_Entry @@ -9823,7 +9862,7 @@ entry. This copy is not performed if the loop is not entered, or if the corresponding pragmas are ignored or disabled. @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{13a} +@anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{13c} @section Attribute Machine_Size @@ -9833,7 +9872,7 @@ This attribute is identical to the @cite{Object_Size} attribute. It is provided for compatibility with the DEC Ada 83 attribute of this name. @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{13b} +@anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{13d} @section Attribute Mantissa @@ -9846,7 +9885,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Maximum_Alignment,Attribute Mechanism_Code,Attribute Mantissa,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{13c}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{13d} +@anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{13e}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{13f} @section Attribute Maximum_Alignment @@ -9862,7 +9901,7 @@ for an object, guaranteeing that it is properly aligned in all cases. @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Maximum_Alignment,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{13e} +@anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{140} @section Attribute Mechanism_Code @@ -9893,7 +9932,7 @@ by reference @end table @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{13f} +@anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{141} @section Attribute Null_Parameter @@ -9918,7 +9957,7 @@ There is no way of indicating this without the @cite{Null_Parameter} attribute. @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{140} +@anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{142} @section Attribute Object_Size @@ -9988,7 +10027,7 @@ Similar additional checks are performed in other contexts requiring statically matching subtypes. @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{141} +@anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{143} @section Attribute Old @@ -10003,7 +10042,7 @@ definition are allowed under control of implementation defined pragma @cite{Unevaluated_Use_Of_Old}. @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{142} +@anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{144} @section Attribute Passed_By_Reference @@ -10019,7 +10058,7 @@ passed by copy in calls. For scalar types, the result is always @cite{False} and is static. For non-scalar types, the result is non-static. @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{143} +@anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{145} @section Attribute Pool_Address @@ -10044,7 +10083,7 @@ For an object created by @cite{new}, @code{Ptr.all'Pool_Address} is what is passed to @cite{Allocate} and returned from @cite{Deallocate}. @node Attribute Range_Length,Attribute Ref,Attribute Pool_Address,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{144} +@anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{146} @section Attribute Range_Length @@ -10057,14 +10096,14 @@ applied to the index subtype of a one dimensional array always gives the same result as @cite{Length} applied to the array itself. @node Attribute Ref,Attribute Restriction_Set,Attribute Range_Length,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-ref}@anchor{145} +@anchor{gnat_rm/implementation_defined_attributes attribute-ref}@anchor{147} @section Attribute Ref @geindex Ref @node Attribute Restriction_Set,Attribute Result,Attribute Ref,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{146} +@anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{148} @section Attribute Restriction_Set @@ -10134,7 +10173,7 @@ Restrictions pragma, they are not analyzed semantically, so they do not have a type. @node Attribute Result,Attribute Safe_Emax,Attribute Restriction_Set,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{147} +@anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{149} @section Attribute Result @@ -10147,7 +10186,7 @@ For a further discussion of the use of this attribute and examples of its use, see the description of pragma Postcondition. @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Result,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{148} +@anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{14a} @section Attribute Safe_Emax @@ -10160,7 +10199,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{149} +@anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{14b} @section Attribute Safe_Large @@ -10173,7 +10212,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{14a} +@anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{14c} @section Attribute Safe_Small @@ -10186,7 +10225,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{14b} +@anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{14d} @section Attribute Scalar_Storage_Order @@ -10303,7 +10342,7 @@ representation. It has no effect on the representation used by stream attributes. @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{b6}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{14c} +@anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{b7}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{14e} @section Attribute Simple_Storage_Pool @@ -10366,7 +10405,7 @@ as defined in section 13.11.2 of the Ada Reference Manual, except that the term 'simple storage pool' is substituted for 'storage pool'. @node Attribute Small,Attribute Storage_Unit,Attribute Simple_Storage_Pool,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{14d} +@anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{14f} @section Attribute Small @@ -10382,7 +10421,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute when applied to floating-point types. @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{14e} +@anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{150} @section Attribute Storage_Unit @@ -10392,7 +10431,7 @@ this attribute when applied to floating-point types. prefix) provides the same value as @cite{System.Storage_Unit}. @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{14f} +@anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{151} @section Attribute Stub_Type @@ -10416,7 +10455,7 @@ unit @cite{System.Partition_Interface}. Use of this attribute will create an implicit dependency on this unit. @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{150} +@anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{152} @section Attribute System_Allocator_Alignment @@ -10433,7 +10472,7 @@ with alignment too large or to enable a realignment circuitry if the alignment request is larger than this value. @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{151} +@anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{153} @section Attribute Target_Name @@ -10446,7 +10485,7 @@ standard gcc target name without the terminating slash (for example, GNAT 5.0 on windows yields "i586-pc-mingw32msv"). @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{152} +@anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{154} @section Attribute To_Address @@ -10469,7 +10508,7 @@ modular manner (e.g., -1 means the same as 16#FFFF_FFFF# on a 32 bits machine). @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{153} +@anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{155} @section Attribute To_Any @@ -10479,7 +10518,7 @@ This internal attribute is used for the generation of remote subprogram stubs in the context of the Distributed Systems Annex. @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{154} +@anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{156} @section Attribute Type_Class @@ -10509,7 +10548,7 @@ applies to all concurrent types. This attribute is designed to be compatible with the DEC Ada 83 attribute of the same name. @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{155} +@anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{157} @section Attribute Type_Key @@ -10521,7 +10560,7 @@ about the type or subtype. This provides improved compatibility with other implementations that support this attribute. @node Attribute TypeCode,Attribute UET_Address,Attribute Type_Key,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{156} +@anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{158} @section Attribute TypeCode @@ -10531,7 +10570,7 @@ This internal attribute is used for the generation of remote subprogram stubs in the context of the Distributed Systems Annex. @node Attribute UET_Address,Attribute Unconstrained_Array,Attribute TypeCode,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-uet-address}@anchor{157} +@anchor{gnat_rm/implementation_defined_attributes attribute-uet-address}@anchor{159} @section Attribute UET_Address @@ -10545,7 +10584,7 @@ intended only for use within the GNAT implementation. See the unit for details on how this attribute is used in the implementation. @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute UET_Address,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{158} +@anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{15a} @section Attribute Unconstrained_Array @@ -10559,7 +10598,7 @@ still static, and yields the result of applying this test to the generic actual. @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{159} +@anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{15b} @section Attribute Universal_Literal_String @@ -10587,7 +10626,7 @@ end; @end example @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{15a} +@anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{15c} @section Attribute Unrestricted_Access @@ -10774,7 +10813,7 @@ In general this is a risky approach. It may appear to "work" but such uses of of @cite{GNAT} to another, so are best avoided if possible. @node Attribute Update,Attribute Valid_Scalars,Attribute Unrestricted_Access,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{15b} +@anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{15d} @section Attribute Update @@ -10855,7 +10894,7 @@ A := A'Update ((1, 2) => 20, (3, 4) => 30); which changes element (1,2) to 20 and (3,4) to 30. @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Update,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{15c} +@anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{15e} @section Attribute Valid_Scalars @@ -10890,7 +10929,7 @@ to write a function with a single use of the attribute, and then call that function from multiple places. @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{15d} +@anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{15f} @section Attribute VADS_Size @@ -10910,7 +10949,7 @@ gives the result that would be obtained by applying the attribute to the corresponding type. @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{15e} +@anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{160} @section Attribute Value_Size @@ -10924,7 +10963,7 @@ a value of the given subtype. It is the same as @code{type'Size}, but, unlike @cite{Size}, may be set for non-first subtypes. @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{15f} +@anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{161} @section Attribute Wchar_T_Size @@ -10936,7 +10975,7 @@ primarily for constructing the definition of this type in package @cite{Interfaces.C}. The result is a static constant. @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{160} +@anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{162} @section Attribute Word_Size @@ -10947,7 +10986,7 @@ prefix) provides the value @cite{System.Word_Size}. The result is a static constant. @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top -@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}@anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{161}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{162} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}@anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{163}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{164} @chapter Standard and Implementation Defined Restrictions @@ -10976,7 +11015,7 @@ language defined or GNAT-specific, are listed in the following. @end menu @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{163}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{164} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{165}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{166} @section Partition-Wide Restrictions @@ -11059,7 +11098,7 @@ then all compilation units in the partition must obey the restriction). @end menu @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{165} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{167} @subsection Immediate_Reclamation @@ -11071,7 +11110,7 @@ deallocation, any storage reserved at run time for an object is immediately reclaimed when the object no longer exists. @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{166} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{168} @subsection Max_Asynchronous_Select_Nesting @@ -11083,7 +11122,7 @@ detected at compile time. Violations of this restriction with values other than zero cause Storage_Error to be raised. @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{167} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{169} @subsection Max_Entry_Queue_Length @@ -11104,7 +11143,7 @@ compatibility purposes (and a warning will be generated for its use if warnings on obsolescent features are activated). @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{168} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{16a} @subsection Max_Protected_Entries @@ -11115,7 +11154,7 @@ bounds of every entry family of a protected unit shall be static, or shall be defined by a discriminant of a subtype whose corresponding bound is static. @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{169} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{16b} @subsection Max_Select_Alternatives @@ -11124,7 +11163,7 @@ defined by a discriminant of a subtype whose corresponding bound is static. [RM D.7] Specifies the maximum number of alternatives in a selective accept. @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{16a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{16c} @subsection Max_Storage_At_Blocking @@ -11135,7 +11174,7 @@ Storage_Size that can be retained by a blocked task. A violation of this restriction causes Storage_Error to be raised. @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{16b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{16d} @subsection Max_Task_Entries @@ -11148,7 +11187,7 @@ defined by a discriminant of a subtype whose corresponding bound is static. @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{16c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{16e} @subsection Max_Tasks @@ -11161,7 +11200,7 @@ time. Violations of this restriction with values other than zero cause Storage_Error to be raised. @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{16d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{16f} @subsection No_Abort_Statements @@ -11171,7 +11210,7 @@ Storage_Error to be raised. no calls to Task_Identification.Abort_Task. @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{16e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{170} @subsection No_Access_Parameter_Allocators @@ -11182,7 +11221,7 @@ occurrences of an allocator as the actual parameter to an access parameter. @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{16f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{171} @subsection No_Access_Subprograms @@ -11192,7 +11231,7 @@ parameter. declarations of access-to-subprogram types. @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{170} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{172} @subsection No_Allocators @@ -11202,7 +11241,7 @@ declarations of access-to-subprogram types. occurrences of an allocator. @node No_Anonymous_Allocators,No_Calendar,No_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{171} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{173} @subsection No_Anonymous_Allocators @@ -11212,7 +11251,7 @@ occurrences of an allocator. occurrences of an allocator of anonymous access type. @node No_Calendar,No_Coextensions,No_Anonymous_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{172} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{174} @subsection No_Calendar @@ -11222,7 +11261,7 @@ occurrences of an allocator of anonymous access type. explicit dependence on the package @cite{Ada.Calendar}. @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{173} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{175} @subsection No_Coextensions @@ -11232,7 +11271,7 @@ explicit dependence on the package @cite{Ada.Calendar}. coextensions. See 3.10.2. @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{174} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{176} @subsection No_Default_Initialization @@ -11249,7 +11288,7 @@ is to prohibit all cases of variables declared without a specific initializer (including the case of OUT scalar parameters). @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{175} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{177} @subsection No_Delay @@ -11259,7 +11298,7 @@ initializer (including the case of OUT scalar parameters). delay statements and no dependences on package Calendar. @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{176} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{178} @subsection No_Dependence @@ -11269,7 +11308,7 @@ delay statements and no dependences on package Calendar. dependence on a library unit. @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{177} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{179} @subsection No_Direct_Boolean_Operators @@ -11282,7 +11321,7 @@ protocol requires the use of short-circuit (and then, or else) forms for all composite boolean operations. @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{178} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{17a} @subsection No_Dispatch @@ -11292,7 +11331,7 @@ composite boolean operations. occurrences of @cite{T'Class}, for any (tagged) subtype @cite{T}. @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{179} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{17b} @subsection No_Dispatching_Calls @@ -11353,7 +11392,7 @@ end Example; @end example @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{17a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{17c} @subsection No_Dynamic_Attachment @@ -11372,7 +11411,7 @@ compatibility purposes (and a warning will be generated for its use if warnings on obsolescent features are activated). @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{17b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{17d} @subsection No_Dynamic_Priorities @@ -11381,7 +11420,7 @@ warnings on obsolescent features are activated). [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities. @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{17c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{17e} @subsection No_Entry_Calls_In_Elaboration_Code @@ -11393,7 +11432,7 @@ restriction, the compiler can assume that no code past an accept statement in a task can be executed at elaboration time. @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{17d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{17f} @subsection No_Enumeration_Maps @@ -11404,7 +11443,7 @@ enumeration maps are used (that is Image and Value attributes applied to enumeration types). @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{17e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{180} @subsection No_Exception_Handlers @@ -11429,7 +11468,7 @@ statement generated by the compiler). The Line parameter when nonzero represents the line number in the source program where the raise occurs. @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{17f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{181} @subsection No_Exception_Propagation @@ -11446,7 +11485,7 @@ the package GNAT.Current_Exception is not permitted, and reraise statements (raise with no operand) are not permitted. @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{180} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{182} @subsection No_Exception_Registration @@ -11460,7 +11499,7 @@ code is simplified by omitting the otherwise-required global registration of exceptions when they are declared. @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{181} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{183} @subsection No_Exceptions @@ -11470,7 +11509,7 @@ of exceptions when they are declared. raise statements and no exception handlers. @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{182} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{184} @subsection No_Finalization @@ -11511,7 +11550,7 @@ object or a nested component, either declared on the stack or on the heap. The deallocation of a controlled object no longer finalizes its contents. @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{183} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{185} @subsection No_Fixed_Point @@ -11521,7 +11560,7 @@ deallocation of a controlled object no longer finalizes its contents. occurrences of fixed point types and operations. @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{184} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{186} @subsection No_Floating_Point @@ -11531,7 +11570,7 @@ occurrences of fixed point types and operations. occurrences of floating point types and operations. @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{185} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{187} @subsection No_Implicit_Conditionals @@ -11547,7 +11586,7 @@ normal manner. Constructs generating implicit conditionals include comparisons of composite objects and the Max/Min attributes. @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{186} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{188} @subsection No_Implicit_Dynamic_Code @@ -11577,7 +11616,7 @@ foreign-language convention; primitive operations of nested tagged types. @node No_Implicit_Heap_Allocations,No_Implicit_Loops,No_Implicit_Dynamic_Code,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{187} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{189} @subsection No_Implicit_Heap_Allocations @@ -11586,7 +11625,7 @@ types. [RM D.7] No constructs are allowed to cause implicit heap allocation. @node No_Implicit_Loops,No_Initialize_Scalars,No_Implicit_Heap_Allocations,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{188} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{18a} @subsection No_Implicit_Loops @@ -11603,7 +11642,7 @@ components. Otherwise, a loop is created for arrays larger than about 5000 scalar components. @node No_Initialize_Scalars,No_IO,No_Implicit_Loops,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{189} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{18b} @subsection No_Initialize_Scalars @@ -11615,7 +11654,7 @@ code, and in particular eliminates dummy null initialization routines that are otherwise generated for some record and array types. @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{18a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{18c} @subsection No_IO @@ -11626,7 +11665,7 @@ dependences on any of the library units Sequential_IO, Direct_IO, Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO. @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{18b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{18d} @subsection No_Local_Allocators @@ -11637,7 +11676,7 @@ occurrences of an allocator in subprograms, generic subprograms, tasks, and entry bodies. @node No_Local_Protected_Objects,No_Local_Timing_Events,No_Local_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{18c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{18e} @subsection No_Local_Protected_Objects @@ -11647,7 +11686,7 @@ and entry bodies. only declared at the library level. @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Protected_Objects,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{18d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{18f} @subsection No_Local_Timing_Events @@ -11657,7 +11696,7 @@ only declared at the library level. declared at the library level. @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{18e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{190} @subsection No_Long_Long_Integers @@ -11669,7 +11708,7 @@ implicit base type is Long_Long_Integer, and modular types whose size exceeds Long_Integer'Size. @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{18f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{191} @subsection No_Multiple_Elaboration @@ -11690,7 +11729,7 @@ possible, including non-Ada main programs, and Stand Alone libraries, are not permitted, and will be diagnosed by the binder. @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{190} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{192} @subsection No_Nested_Finalization @@ -11699,7 +11738,7 @@ permitted, and will be diagnosed by the binder. [RM D.7] All objects requiring finalization are declared at the library level. @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{191} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{193} @subsection No_Protected_Type_Allocators @@ -11709,7 +11748,7 @@ permitted, and will be diagnosed by the binder. expressions that attempt to allocate protected objects. @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{192} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{194} @subsection No_Protected_Types @@ -11719,7 +11758,7 @@ expressions that attempt to allocate protected objects. declarations of protected types or protected objects. @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{193} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{195} @subsection No_Recursion @@ -11729,7 +11768,7 @@ declarations of protected types or protected objects. part of its execution. @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{194} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{196} @subsection No_Reentrancy @@ -11739,7 +11778,7 @@ part of its execution. two tasks at the same time. @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{195} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{197} @subsection No_Relative_Delay @@ -11750,7 +11789,7 @@ relative statements and prevents expressions such as @cite{delay 1.23;} from appearing in source code. @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{196} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{198} @subsection No_Requeue_Statements @@ -11768,7 +11807,7 @@ compatibility purposes (and a warning will be generated for its use if warnings on oNobsolescent features are activated). @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{197} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{199} @subsection No_Secondary_Stack @@ -11780,7 +11819,7 @@ stack is used to implement functions returning unconstrained objects (arrays or records) on some targets. @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{198} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{19a} @subsection No_Select_Statements @@ -11790,7 +11829,7 @@ stack is used to implement functions returning unconstrained objects kind are permitted, that is the keyword @cite{select} may not appear. @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{199} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{19b} @subsection No_Specific_Termination_Handlers @@ -11800,7 +11839,7 @@ kind are permitted, that is the keyword @cite{select} may not appear. or to Ada.Task_Termination.Specific_Handler. @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{19a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{19c} @subsection No_Specification_of_Aspect @@ -11811,7 +11850,7 @@ specification, attribute definition clause, or pragma is given for a given aspect. @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{19b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{19d} @subsection No_Standard_Allocators_After_Elaboration @@ -11823,7 +11862,7 @@ library items of the partition has completed. Otherwise, Storage_Error is raised. @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{19c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{19e} @subsection No_Standard_Storage_Pools @@ -11835,7 +11874,7 @@ have an explicit Storage_Pool attribute defined specifying a user-defined storage pool. @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{19d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{19f} @subsection No_Stream_Optimizations @@ -11848,7 +11887,7 @@ due to their supperior performance. When this restriction is in effect, the compiler performs all IO operations on a per-character basis. @node No_Streams,No_Task_Allocators,No_Stream_Optimizations,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{19e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{1a0} @subsection No_Streams @@ -11869,7 +11908,7 @@ unit declaring a tagged type should be compiled with the restriction, though this is not required. @node No_Task_Allocators,No_Task_Attributes_Package,No_Streams,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{19f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{1a1} @subsection No_Task_Allocators @@ -11879,7 +11918,7 @@ though this is not required. or types containing task subcomponents. @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1a0} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1a2} @subsection No_Task_Attributes_Package @@ -11896,7 +11935,7 @@ compatibility purposes (and a warning will be generated for its use if warnings on obsolescent features are activated). @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{1a1} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{1a3} @subsection No_Task_Hierarchy @@ -11906,7 +11945,7 @@ warnings on obsolescent features are activated). directly on the environment task of the partition. @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{1a2} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{1a4} @subsection No_Task_Termination @@ -11915,7 +11954,7 @@ directly on the environment task of the partition. [RM D.7] Tasks that terminate are erroneous. @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{1a3} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{1a5} @subsection No_Tasking @@ -11928,7 +11967,7 @@ and cause an error message to be output either by the compiler or binder. @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{1a4} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{1a6} @subsection No_Terminate_Alternatives @@ -11937,7 +11976,7 @@ binder. [RM D.7] There are no selective accepts with terminate alternatives. @node No_Unchecked_Access,No_Use_Of_Entity,No_Terminate_Alternatives,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{1a5} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{1a7} @subsection No_Unchecked_Access @@ -11947,7 +11986,7 @@ binder. occurrences of the Unchecked_Access attribute. @node No_Use_Of_Entity,Simple_Barriers,No_Unchecked_Access,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{1a6} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{1a8} @subsection No_Use_Of_Entity @@ -11967,7 +12006,7 @@ No_Use_Of_Entity => Ada.Text_IO.Put_Line @end example @node Simple_Barriers,Static_Priorities,No_Use_Of_Entity,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{1a7} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{1a9} @subsection Simple_Barriers @@ -11986,7 +12025,7 @@ compatibility purposes (and a warning will be generated for its use if warnings on obsolescent features are activated). @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{1a8} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{1aa} @subsection Static_Priorities @@ -11997,7 +12036,7 @@ are static, and that there are no dependences on the package @cite{Ada.Dynamic_Priorities}. @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{1a9} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{1ab} @subsection Static_Storage_Size @@ -12007,7 +12046,7 @@ are static, and that there are no dependences on the package in a Storage_Size pragma or attribute definition clause is static. @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{1aa}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{1ab} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{1ac}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{1ad} @section Program Unit Level Restrictions @@ -12034,7 +12073,7 @@ other compilation units in the partition. @end menu @node No_Elaboration_Code,No_Entry_Queue,,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{1ac} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{1ae} @subsection No_Elaboration_Code @@ -12084,7 +12123,7 @@ code generation. If it is used in conjunction with "semantics only" checking, then some cases of violations may be missed. @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Elaboration_Code,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{1ad} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{1af} @subsection No_Entry_Queue @@ -12097,7 +12136,7 @@ checked at compile time. A program execution is erroneous if an attempt is made to queue a second task on such an entry. @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{1ae} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{1b0} @subsection No_Implementation_Aspect_Specifications @@ -12108,7 +12147,7 @@ GNAT-defined aspects are present. With this restriction, the only aspects that can be used are those defined in the Ada Reference Manual. @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{1af} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{1b1} @subsection No_Implementation_Attributes @@ -12120,7 +12159,7 @@ attributes that can be used are those defined in the Ada Reference Manual. @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{1b0} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{1b2} @subsection No_Implementation_Identifiers @@ -12131,7 +12170,7 @@ implementation-defined identifiers (marked with pragma Implementation_Defined) occur within language-defined packages. @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{1b1} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{1b3} @subsection No_Implementation_Pragmas @@ -12142,7 +12181,7 @@ GNAT-defined pragmas are present. With this restriction, the only pragmas that can be used are those defined in the Ada Reference Manual. @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{1b2} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{1b4} @subsection No_Implementation_Restrictions @@ -12154,7 +12193,7 @@ are present. With this restriction, the only other restriction identifiers that can be used are those defined in the Ada Reference Manual. @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{1b3} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{1b5} @subsection No_Implementation_Units @@ -12165,7 +12204,7 @@ mention in the context clause of any implementation-defined descendants of packages Ada, Interfaces, or System. @node No_Implicit_Aliasing,No_Obsolescent_Features,No_Implementation_Units,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{1b4} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{1b6} @subsection No_Implicit_Aliasing @@ -12180,7 +12219,7 @@ to be aliased, and in such cases, it can always be replaced by the standard attribute Unchecked_Access which is preferable. @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Aliasing,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{1b5} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{1b7} @subsection No_Obsolescent_Features @@ -12190,7 +12229,7 @@ the standard attribute Unchecked_Access which is preferable. features are used, as defined in Annex J of the Ada Reference Manual. @node No_Wide_Characters,SPARK_05,No_Obsolescent_Features,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{1b6} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{1b8} @subsection No_Wide_Characters @@ -12204,7 +12243,7 @@ appear in the program (that is literals representing characters not in type @cite{Character}). @node SPARK_05,,No_Wide_Characters,Program Unit Level Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{1b7} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{1b9} @subsection SPARK_05 @@ -12563,7 +12602,7 @@ violations will be reported for constructs forbidden in SPARK 95, instead of SPARK 2005. @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top -@anchor{gnat_rm/implementation_advice doc}@anchor{1b8}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}@anchor{gnat_rm/implementation_advice id1}@anchor{1b9} +@anchor{gnat_rm/implementation_advice doc}@anchor{1ba}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}@anchor{gnat_rm/implementation_advice id1}@anchor{1bb} @chapter Implementation Advice @@ -12660,7 +12699,7 @@ case the text describes what GNAT does and why. @end menu @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{1ba} +@anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{1bc} @section RM 1.1.3(20): Error Detection @@ -12677,7 +12716,7 @@ or diagnosed at compile time. @geindex Child Units @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{1bb} +@anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{1bd} @section RM 1.1.3(31): Child Units @@ -12693,7 +12732,7 @@ Followed. @geindex Bounded errors @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{1bc} +@anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{1be} @section RM 1.1.5(12): Bounded Errors @@ -12710,7 +12749,7 @@ runtime. @geindex Pragmas @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice -@anchor{gnat_rm/implementation_advice id2}@anchor{1bd}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{1be} +@anchor{gnat_rm/implementation_advice id2}@anchor{1bf}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{1c0} @section RM 2.8(16): Pragmas @@ -12823,7 +12862,7 @@ that this advice not be followed. For details see @ref{7,,Implementation Defined Pragmas}. @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{1bf} +@anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{1c1} @section RM 2.8(17-19): Pragmas @@ -12844,14 +12883,14 @@ replacing @cite{library_items}." @end itemize @end quotation -See @ref{1be,,RM 2.8(16); Pragmas}. +See @ref{1c0,,RM 2.8(16); Pragmas}. @geindex Character Sets @geindex Alternative Character Sets @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{1c0} +@anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{1c2} @section RM 3.5.2(5): Alternative Character Sets @@ -12879,7 +12918,7 @@ there is no such restriction. @geindex Integer types @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{1c1} +@anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{1c3} @section RM 3.5.4(28): Integer Types @@ -12898,7 +12937,7 @@ are supported for convenient interface to C, and so that all hardware types of the machine are easily available. @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{1c2} +@anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{1c4} @section RM 3.5.4(29): Integer Types @@ -12914,7 +12953,7 @@ Followed. @geindex Enumeration values @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{1c3} +@anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{1c5} @section RM 3.5.5(8): Enumeration Values @@ -12934,7 +12973,7 @@ Followed. @geindex Float types @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{1c4} +@anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{1c6} @section RM 3.5.7(17): Float Types @@ -12964,7 +13003,7 @@ since this is a software rather than a hardware format. @geindex multidimensional @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration'Small,RM 3 5 7 17 Float Types,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{1c5} +@anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{1c7} @section RM 3.6.2(11): Multidimensional Arrays @@ -12982,7 +13021,7 @@ Followed. @geindex Duration'Small @node RM 9 6 30-31 Duration'Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{1c6} +@anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{1c8} @section RM 9.6(30-31): Duration'Small @@ -13003,7 +13042,7 @@ it need not be the same time base as used for @cite{Calendar.Clock}." Followed. @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration'Small,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{1c7} +@anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{1c9} @section RM 10.2.1(12): Consistent Representation @@ -13025,7 +13064,7 @@ advice without severely impacting efficiency of execution. @geindex Exception information @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{1c8} +@anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{1ca} @section RM 11.4.1(19): Exception Information @@ -13056,7 +13095,7 @@ Pragma @cite{Discard_Names}. @geindex suppression of @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{1c9} +@anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{1cb} @section RM 11.5(28): Suppression of Checks @@ -13071,7 +13110,7 @@ Followed. @geindex Representation clauses @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{1ca} +@anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{1cc} @section RM 13.1 (21-24): Representation Clauses @@ -13120,7 +13159,7 @@ Followed. @geindex Packed types @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{1cb} +@anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{1cd} @section RM 13.2(6-8): Packed Types @@ -13159,7 +13198,7 @@ Followed. @geindex Address clauses @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{1cc} +@anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{1ce} @section RM 13.3(14-19): Address Clauses @@ -13212,7 +13251,7 @@ Followed. @geindex Alignment clauses @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{1cd} +@anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{1cf} @section RM 13.3(29-35): Alignment Clauses @@ -13269,7 +13308,7 @@ Followed. @geindex Size clauses @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{1ce} +@anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{1d0} @section RM 13.3(42-43): Size Clauses @@ -13287,7 +13326,7 @@ object's @cite{Alignment} (if the @cite{Alignment} is nonzero)." Followed. @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{1cf} +@anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{1d1} @section RM 13.3(50-56): Size Clauses @@ -13338,7 +13377,7 @@ Followed. @geindex Component_Size clauses @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{1d0} +@anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{1d2} @section RM 13.3(71-73): Component Size Clauses @@ -13372,7 +13411,7 @@ Followed. @geindex enumeration @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{1d1} +@anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{1d3} @section RM 13.4(9-10): Enumeration Representation Clauses @@ -13394,7 +13433,7 @@ Followed. @geindex records @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{1d2} +@anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{1d4} @section RM 13.5.1(17-22): Record Representation Clauses @@ -13454,7 +13493,7 @@ and all mentioned features are implemented. @geindex Storage place attributes @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{1d3} +@anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{1d5} @section RM 13.5.2(5): Storage Place Attributes @@ -13474,7 +13513,7 @@ Followed. There are no such components in GNAT. @geindex Bit ordering @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{1d4} +@anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{1d6} @section RM 13.5.3(7-8): Bit Ordering @@ -13494,7 +13533,7 @@ Thus non-default bit ordering is not supported. @geindex as private type @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{1d5} +@anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{1d7} @section RM 13.7(37): Address as Private @@ -13512,7 +13551,7 @@ Followed. @geindex operations of @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{1d6} +@anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{1d8} @section RM 13.7.1(16): Address Operations @@ -13530,7 +13569,7 @@ operation raises @cite{Program_Error}, since all operations make sense. @geindex Unchecked conversion @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{1d7} +@anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{1d9} @section RM 13.9(14-17): Unchecked Conversion @@ -13574,7 +13613,7 @@ Followed. @geindex implicit @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{1d8} +@anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{1da} @section RM 13.11(23-25): Implicit Heap Usage @@ -13625,7 +13664,7 @@ Followed. @geindex Unchecked deallocation @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 17 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{1d9} +@anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{1db} @section RM 13.11.2(17): Unchecked Deallocation @@ -13640,7 +13679,7 @@ Followed. @geindex Stream oriented attributes @node RM 13 13 2 17 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-13-13-2-17-stream-oriented-attributes}@anchor{1da} +@anchor{gnat_rm/implementation_advice rm-13-13-2-17-stream-oriented-attributes}@anchor{1dc} @section RM 13.13.2(17): Stream Oriented Attributes @@ -13695,7 +13734,7 @@ the @cite{GNAT and Libraries} section of the @cite{GNAT User's Guide}. @end itemize @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 17 Stream Oriented Attributes,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{1db} +@anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{1dd} @section RM A.1(52): Names of Predefined Numeric Types @@ -13713,7 +13752,7 @@ Followed. @geindex Ada.Characters.Handling @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{1dc} +@anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{1de} @section RM A.3.2(49): @cite{Ada.Characters.Handling} @@ -13730,7 +13769,7 @@ Followed. GNAT provides no such localized definitions. @geindex Bounded-length strings @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{1dd} +@anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{1df} @section RM A.4.4(106): Bounded-Length String Handling @@ -13745,7 +13784,7 @@ Followed. No implicit pointers or dynamic allocation are used. @geindex Random number generation @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{1de} +@anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{1e0} @section RM A.5.2(46-47): Random Number Generation @@ -13774,7 +13813,7 @@ condition here to hold true. @geindex Get_Immediate @node RM A 10 7 23 Get_Immediate,RM B 1 39-41 Pragma Export,RM A 5 2 46-47 Random Number Generation,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{1df} +@anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{1e1} @section RM A.10.7(23): @cite{Get_Immediate} @@ -13798,7 +13837,7 @@ this functionality. @geindex Export @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 10 7 23 Get_Immediate,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{1e0} +@anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{1e2} @section RM B.1(39-41): Pragma @cite{Export} @@ -13846,7 +13885,7 @@ Followed. @geindex Interfaces @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{1e1} +@anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{1e3} @section RM B.2(12-13): Package @cite{Interfaces} @@ -13876,7 +13915,7 @@ Followed. GNAT provides all the packages described in this section. @geindex interfacing with @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{1e2} +@anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{1e4} @section RM B.3(63-71): Interfacing with C @@ -13964,7 +14003,7 @@ Followed. @geindex interfacing with @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{1e3} +@anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{1e5} @section RM B.4(95-98): Interfacing with COBOL @@ -14005,7 +14044,7 @@ Followed. @geindex interfacing with @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{1e4} +@anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{1e6} @section RM B.5(22-26): Interfacing with Fortran @@ -14056,7 +14095,7 @@ Followed. @geindex Machine operations @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{1e5} +@anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{1e7} @section RM C.1(3-5): Access to Machine Operations @@ -14091,7 +14130,7 @@ object that is specified as exported." Followed. @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{1e6} +@anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{1e8} @section RM C.1(10-16): Access to Machine Operations @@ -14152,7 +14191,7 @@ Followed on any target supporting such operations. @geindex Interrupt support @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{1e7} +@anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{1e9} @section RM C.3(28): Interrupt Support @@ -14170,7 +14209,7 @@ of interrupt blocking. @geindex Protected procedure handlers @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{1e8} +@anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{1ea} @section RM C.3.1(20-21): Protected Procedure Handlers @@ -14196,7 +14235,7 @@ Followed. Compile time warnings are given when possible. @geindex Interrupts @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{1e9} +@anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{1eb} @section RM C.3.2(25): Package @cite{Interrupts} @@ -14214,7 +14253,7 @@ Followed. @geindex Pre-elaboration requirements @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{1ea} +@anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{1ec} @section RM C.4(14): Pre-elaboration Requirements @@ -14230,7 +14269,7 @@ Followed. Executable code is generated in some cases, e.g., loops to initialize large arrays. @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{1eb} +@anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{1ed} @section RM C.5(8): Pragma @cite{Discard_Names} @@ -14248,7 +14287,7 @@ Followed. @geindex Task_Attributes @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{1ec} +@anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{1ee} @section RM C.7.2(30): The Package Task_Attributes @@ -14269,7 +14308,7 @@ Not followed. This implementation is not targeted to such a domain. @geindex Locking Policies @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{1ed} +@anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{1ef} @section RM D.3(17): Locking Policies @@ -14286,7 +14325,7 @@ whose names (@cite{Inheritance_Locking} and @geindex Entry queuing policies @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{1ee} +@anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{1f0} @section RM D.4(16): Entry Queuing Policies @@ -14301,7 +14340,7 @@ Followed. No such implementation-defined queuing policies exist. @geindex Preemptive abort @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{1ef} +@anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{1f1} @section RM D.6(9-10): Preemptive Abort @@ -14327,7 +14366,7 @@ Followed. @geindex Tasking restrictions @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{1f0} +@anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{1f2} @section RM D.7(21): Tasking Restrictions @@ -14346,7 +14385,7 @@ pragma @cite{Profile (Restricted)} for more details. @geindex monotonic @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{1f1} +@anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{1f3} @section RM D.8(47-49): Monotonic Time @@ -14381,7 +14420,7 @@ Followed. @geindex PCS @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{1f2} +@anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{1f4} @section RM E.5(28-29): Partition Communication Subsystem @@ -14409,7 +14448,7 @@ GNAT. @geindex COBOL support @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{1f3} +@anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{1f5} @section RM F(7): COBOL Support @@ -14429,7 +14468,7 @@ Followed. @geindex Decimal radix support @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{1f4} +@anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{1f6} @section RM F.1(2): Decimal Radix Support @@ -14445,7 +14484,7 @@ representations. @geindex Numerics @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{1f5} +@anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{1f7} @section RM G: Numerics @@ -14465,7 +14504,7 @@ Followed. @geindex Complex types @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{1f6} +@anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{1f8} @section RM G.1.1(56-58): Complex Types @@ -14527,7 +14566,7 @@ Followed. @geindex Complex elementary functions @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{1f7} +@anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{1f9} @section RM G.1.2(49): Complex Elementary Functions @@ -14549,7 +14588,7 @@ Followed. @geindex Accuracy requirements @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{1f8} +@anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{1fa} @section RM G.2.4(19): Accuracy Requirements @@ -14573,7 +14612,7 @@ Followed. @geindex complex arithmetic @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{1f9} +@anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{1fb} @section RM G.2.6(15): Complex Arithmetic Accuracy @@ -14591,7 +14630,7 @@ Followed. @geindex Sequential elaboration policy @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice -@anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{1fa} +@anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{1fc} @section RM H.6(15/2): Pragma Partition_Elaboration_Policy @@ -14606,7 +14645,7 @@ immediately terminated." Not followed. @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top -@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}@anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{1fb}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{1fc} +@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}@anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{1fd}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{1fe} @chapter Implementation Defined Characteristics @@ -15808,7 +15847,7 @@ When the @cite{Pattern} parameter is not the null string, it is interpreted according to the syntax of regular expressions as defined in the @cite{GNAT.Regexp} package. -See @ref{1fd,,GNAT.Regexp (g-regexp.ads)}. +See @ref{1ff,,GNAT.Regexp (g-regexp.ads)}. @itemize * @@ -16850,7 +16889,7 @@ H.4(27)." There are no restrictions on pragma @cite{Restrictions}. @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top -@anchor{gnat_rm/intrinsic_subprograms doc}@anchor{1fe}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{1ff} +@anchor{gnat_rm/intrinsic_subprograms doc}@anchor{200}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{201} @chapter Intrinsic Subprograms @@ -16887,7 +16926,7 @@ Ada standard does not require Ada compilers to implement this feature. @end menu @node Intrinsic Operators,Compilation_Date,,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms id2}@anchor{200}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{201} +@anchor{gnat_rm/intrinsic_subprograms id2}@anchor{202}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{203} @section Intrinsic Operators @@ -16918,7 +16957,7 @@ It is also possible to specify such operators for private types, if the full views are appropriate arithmetic types. @node Compilation_Date,Compilation_Time,Intrinsic Operators,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{202}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{203} +@anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{204}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{205} @section Compilation_Date @@ -16932,7 +16971,7 @@ application program should simply call the function the current compilation (in local time format MMM DD YYYY). @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{204}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{205} +@anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{206}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{207} @section Compilation_Time @@ -16946,7 +16985,7 @@ application program should simply call the function the current compilation (in local time format HH:MM:SS). @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{206}@anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{207} +@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{208}@anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{209} @section Enclosing_Entity @@ -16960,7 +16999,7 @@ application program should simply call the function the current subprogram, package, task, entry, or protected subprogram. @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{208}@anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{209} +@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{20a}@anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{20b} @section Exception_Information @@ -16974,7 +17013,7 @@ so an application program should simply call the function the exception information associated with the current exception. @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{20a}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{20b} +@anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{20c}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{20d} @section Exception_Message @@ -16988,7 +17027,7 @@ so an application program should simply call the function the message associated with the current exception. @node Exception_Name,File,Exception_Message,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{20c}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{20d} +@anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{20e}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{20f} @section Exception_Name @@ -17002,7 +17041,7 @@ so an application program should simply call the function the name of the current exception. @node File,Line,Exception_Name,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms file}@anchor{20e}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{20f} +@anchor{gnat_rm/intrinsic_subprograms file}@anchor{210}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{211} @section File @@ -17016,7 +17055,7 @@ application program should simply call the function file. @node Line,Shifts and Rotates,File,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{210}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{211} +@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{212}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{213} @section Line @@ -17030,7 +17069,7 @@ application program should simply call the function source line. @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms id11}@anchor{212}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{213} +@anchor{gnat_rm/intrinsic_subprograms id11}@anchor{214}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{215} @section Shifts and Rotates @@ -17069,7 +17108,7 @@ the Provide_Shift_Operators pragma, which provides the function declarations and corresponding pragma Import's for all five shift functions. @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms -@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{214}@anchor{gnat_rm/intrinsic_subprograms id12}@anchor{215} +@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{216}@anchor{gnat_rm/intrinsic_subprograms id12}@anchor{217} @section Source_Location @@ -17083,7 +17122,7 @@ application program should simply call the function source file location. @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top -@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}@anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{216}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{217} +@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}@anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{218}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{219} @chapter Representation Clauses and Pragmas @@ -17129,7 +17168,7 @@ and this section describes the additional capabilities provided. @end menu @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{218}@anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{219} +@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{21a}@anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{21b} @section Alignment Clauses @@ -17149,7 +17188,7 @@ For primitive types, the alignment is the minimum of the actual size of objects of the type divided by @cite{Storage_Unit}, and the maximum alignment supported by the target. (This maximum alignment is given by the GNAT-specific attribute -@cite{Standard'Maximum_Alignment}; see @ref{13c,,Attribute Maximum_Alignment}.) +@cite{Standard'Maximum_Alignment}; see @ref{13e,,Attribute Maximum_Alignment}.) @geindex Maximum_Alignment attribute @@ -17257,7 +17296,7 @@ assumption is non-portable, and other compilers may choose different alignments for the subtype @cite{RS}. @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{21a}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{21b} +@anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{21c}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{21d} @section Size Clauses @@ -17334,7 +17373,7 @@ if it is known that a Size value can be accommodated in an object of type Integer. @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{21c}@anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{21d} +@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{21e}@anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{21f} @section Storage_Size Clauses @@ -17407,7 +17446,7 @@ Of course in practice, there will not be any explicit allocators in the case of such an access declaration. @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{21e}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{21f} +@anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{220}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{221} @section Size of Variant Record Objects @@ -17517,7 +17556,7 @@ the maximum size, regardless of the current variant value, the variant value. @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{220}@anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{221} +@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{222}@anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{223} @section Biased Representation @@ -17555,7 +17594,7 @@ biased representation can be used for all discrete types except for enumeration types for which a representation clause is given. @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{222}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{223} +@anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{224}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{225} @section Value_Size and Object_Size Clauses @@ -17859,7 +17898,7 @@ definition clause forces biased representation. This warning can be turned off using @cite{-gnatw.B}. @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{224}@anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{225} +@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{226}@anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{227} @section Component_Size Clauses @@ -17906,7 +17945,7 @@ and a pragma Pack for the same array type. if such duplicate clauses are given, the pragma Pack will be ignored. @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{226}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{227} +@anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{228}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{229} @section Bit_Order Clauses @@ -18012,7 +18051,7 @@ if desired. The following section contains additional details regarding the issue of byte ordering. @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{228}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{229} +@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{22a}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{22b} @section Effect of Bit_Order on Byte Ordering @@ -18269,7 +18308,7 @@ to set the boolean constant @cite{Master_Byte_First} in an appropriate manner. @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{22a}@anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{22b} +@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{22c}@anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{22d} @section Pragma Pack for Arrays @@ -18385,7 +18424,7 @@ Here 31-bit packing is achieved as required, and no warning is generated, since in this case the programmer intention is clear. @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{22c}@anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{22d} +@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{22e}@anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{22f} @section Pragma Pack for Records @@ -18468,7 +18507,7 @@ the @cite{L6} field is aligned to the next byte boundary, and takes an integral number of bytes, i.e., 72 bits. @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{22e}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{22f} +@anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{230}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{231} @section Record Representation Clauses @@ -18553,7 +18592,7 @@ type, in particular, always starting on a byte boundary, and the length must be a multiple of the storage unit. @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{230}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{231} +@anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{232}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{233} @section Handling of Records with Holes @@ -18630,7 +18669,7 @@ for Hrec'Size use 64; @end example @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{232}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{233} +@anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{234}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{235} @section Enumeration Clauses @@ -18673,7 +18712,7 @@ the overhead of converting representation values to the corresponding positional values, (i.e., the value delivered by the @cite{Pos} attribute). @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{234}@anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{235} +@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{236}@anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{237} @section Address Clauses @@ -18790,13 +18829,15 @@ the same as the alignment of the type of the object). If an address clause is given that specifies an inappropriately aligned address value, then the program execution is erroneous. -Since this source of erroneous behavior can have unfortunate effects, GNAT +Since this source of erroneous behavior can have unfortunate effects on +machines with strict alignment requirements, GNAT checks (at compile time if possible, generating a warning, or at execution time with a run-time check) that the alignment is appropriate. If the run-time check fails, then @cite{Program_Error} is raised. This run-time check is suppressed if range checks are suppressed, or if the special GNAT check Alignment_Check is suppressed, or if -@cite{pragma Restrictions (No_Elaboration_Code)} is in effect. +@cite{pragma Restrictions (No_Elaboration_Code)} is in effect. It is also +suppressed by default on non-strict alignment machines (such as the x86). Finally, GNAT does not permit overlaying of objects of controlled types or composite types containing a controlled component. In most cases, the compiler @@ -18998,7 +19039,7 @@ then the program compiles without the warning and when run will generate the output @cite{X was not clobbered}. @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{236}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{237} +@anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{238}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{239} @section Use of Address Clauses for Memory-Mapped I/O @@ -19056,7 +19097,7 @@ components to be atomic if you want the byte store, or explicitly writing the full word access sequence if that is what the hardware requires. @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{238}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{239} +@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{23a}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{23b} @section Effect of Convention on Representation @@ -19134,7 +19175,7 @@ when one of these values is read, any nonzero value is treated as True. @end itemize @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{23a}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{23b} +@anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{23c}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{23d} @section Conventions and Anonymous Access Types @@ -19210,7 +19251,7 @@ package ConvComp is @end example @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas -@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{23c}@anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{23d} +@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{23e}@anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{23f} @section Determining the Representations chosen by GNAT @@ -19362,7 +19403,7 @@ generated by the compiler into the original source to fix and guarantee the actual representation to be used. @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top -@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}@anchor{gnat_rm/standard_library_routines doc}@anchor{23e}@anchor{gnat_rm/standard_library_routines id1}@anchor{23f} +@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}@anchor{gnat_rm/standard_library_routines doc}@anchor{240}@anchor{gnat_rm/standard_library_routines id1}@anchor{241} @chapter Standard Library Routines @@ -20185,7 +20226,7 @@ For packages in Interfaces and System, all the RM defined packages are available in GNAT, see the Ada 2012 RM for full details. @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top -@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}@anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{240}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{241} +@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}@anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{242}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{243} @chapter The Implementation of Standard I/O @@ -20237,7 +20278,7 @@ these additional facilities are also described in this chapter. @end menu @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{242}@anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{243} +@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{244}@anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{245} @section Standard I/O Packages @@ -20308,7 +20349,7 @@ flush the common I/O streams and in particular Standard_Output before elaborating the Ada code. @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{244}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{245} +@anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{246}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{247} @section FORM Strings @@ -20334,7 +20375,7 @@ unrecognized keyword appears in a form string, it is silently ignored and not considered invalid. @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{246}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{247} +@anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{248}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{249} @section Direct_IO @@ -20354,7 +20395,7 @@ There is no limit on the size of Direct_IO files, they are expanded as necessary to accommodate whatever records are written to the file. @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{248}@anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{249} +@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{24a}@anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{24b} @section Sequential_IO @@ -20401,7 +20442,7 @@ using Stream_IO, and this is the preferred mechanism. In particular, the above program fragment rewritten to use Stream_IO will work correctly. @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{24a}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{24b} +@anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{24c}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{24d} @section Text_IO @@ -20484,7 +20525,7 @@ the file. @end menu @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{24c}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{24d} +@anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{24e}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{24f} @subsection Stream Pointer Positioning @@ -20520,7 +20561,7 @@ between two Ada files, then the difference may be observable in some situations. @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{24e}@anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{24f} +@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{250}@anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{251} @subsection Reading and Writing Non-Regular Files @@ -20571,7 +20612,7 @@ to read data past that end of file indication, until another end of file indication is entered. @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{250}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{251} +@anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{252}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{253} @subsection Get_Immediate @@ -20589,7 +20630,7 @@ possible), it is undefined whether the FF character will be treated as a page mark. @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{252}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{253} +@anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{254}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{255} @subsection Treating Text_IO Files as Streams @@ -20605,7 +20646,7 @@ skipped and the effect is similar to that described above for @cite{Get_Immediate}. @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{254}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{255} +@anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{256}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{257} @subsection Text_IO Extensions @@ -20633,7 +20674,7 @@ the string is to be read. @end itemize @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{256}@anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{257} +@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{258}@anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{259} @subsection Text_IO Facilities for Unbounded Strings @@ -20681,7 +20722,7 @@ files @code{a-szuzti.ads} and @code{a-szuzti.adb} provides similar extended @cite{Wide_Wide_Text_IO} functionality for unbounded wide wide strings. @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{258}@anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{259} +@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{25a}@anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{25b} @section Wide_Text_IO @@ -20928,12 +20969,12 @@ input also causes Constraint_Error to be raised. @end menu @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{25a}@anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{25b} +@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{25c}@anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{25d} @subsection Stream Pointer Positioning @cite{Ada.Wide_Text_IO} is similar to @cite{Ada.Text_IO} in its handling -of stream pointer positioning (@ref{24b,,Text_IO}). There is one additional +of stream pointer positioning (@ref{24d,,Text_IO}). There is one additional case: If @cite{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the @@ -20952,7 +20993,7 @@ to a normal program using @cite{Wide_Text_IO}. However, this discrepancy can be observed if the wide text file shares a stream with another file. @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{25c}@anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{25d} +@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{25e}@anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{25f} @subsection Reading and Writing Non-Regular Files @@ -20963,7 +21004,7 @@ treated as data characters), and @cite{End_Of_Page} always returns it is possible to read beyond an end of file. @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{25e}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{25f} +@anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{260}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{261} @section Wide_Wide_Text_IO @@ -21132,12 +21173,12 @@ input also causes Constraint_Error to be raised. @end menu @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{260}@anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{261} +@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{262}@anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{263} @subsection Stream Pointer Positioning @cite{Ada.Wide_Wide_Text_IO} is similar to @cite{Ada.Text_IO} in its handling -of stream pointer positioning (@ref{24b,,Text_IO}). There is one additional +of stream pointer positioning (@ref{24d,,Text_IO}). There is one additional case: If @cite{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the @@ -21156,7 +21197,7 @@ to a normal program using @cite{Wide_Wide_Text_IO}. However, this discrepancy can be observed if the wide text file shares a stream with another file. @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO -@anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{262}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{263} +@anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{264}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{265} @subsection Reading and Writing Non-Regular Files @@ -21167,7 +21208,7 @@ treated as data characters), and @cite{End_Of_Page} always returns it is possible to read beyond an end of file. @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{264}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{265} +@anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{266}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{267} @section Stream_IO @@ -21189,7 +21230,7 @@ manner described for stream attributes. @end itemize @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{266}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{267} +@anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{268}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{269} @section Text Translation @@ -21223,7 +21264,7 @@ mode. (corresponds to_O_U16TEXT). @end itemize @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{268}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{269} +@anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{26a}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{26b} @section Shared Files @@ -21286,7 +21327,7 @@ heterogeneous input-output. Although this approach will work in GNAT if for this purpose (using the stream attributes) @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{26a}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{26b} +@anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{26c}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{26d} @section Filenames encoding @@ -21326,7 +21367,7 @@ platform. On the other Operating Systems the run-time is supporting UTF-8 natively. @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{26c}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{26d} +@anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{26e}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{26f} @section File content encoding @@ -21359,7 +21400,7 @@ Unicode 8-bit encoding This encoding is only supported on the Windows platform. @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{26e}@anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{26f} +@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{270}@anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{271} @section Open Modes @@ -21462,7 +21503,7 @@ subsequently requires switching from reading to writing or vice-versa, then the file is reopened in @code{r+} mode to permit the required operation. @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{270}@anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{271} +@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{272}@anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{273} @section Operations on C Streams @@ -21622,7 +21663,7 @@ end Interfaces.C_Streams; @end example @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O -@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{272}@anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{273} +@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{274}@anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{275} @section Interfacing to C Streams @@ -21715,7 +21756,7 @@ imported from a C program, allowing an Ada file to operate on an existing C file. @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top -@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}@anchor{gnat_rm/the_gnat_library doc}@anchor{274}@anchor{gnat_rm/the_gnat_library id1}@anchor{275} +@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}@anchor{gnat_rm/the_gnat_library doc}@anchor{276}@anchor{gnat_rm/the_gnat_library id1}@anchor{277} @chapter The GNAT Library @@ -21901,7 +21942,7 @@ of GNAT, and will generate a warning message. @end menu @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library -@anchor{gnat_rm/the_gnat_library id2}@anchor{276}@anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{277} +@anchor{gnat_rm/the_gnat_library id2}@anchor{278}@anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{279} @section @cite{Ada.Characters.Latin_9} (@code{a-chlat9.ads}) @@ -21918,7 +21959,7 @@ is specifically authorized by the Ada Reference Manual (RM A.3.3(27)). @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila1 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{278}@anchor{gnat_rm/the_gnat_library id3}@anchor{279} +@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{27a}@anchor{gnat_rm/the_gnat_library id3}@anchor{27b} @section @cite{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads}) @@ -21935,7 +21976,7 @@ is specifically authorized by the Ada Reference Manual (RM A.3.3(27)). @node Ada Characters Wide_Latin_9 a-cwila1 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id4}@anchor{27a}@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila1-ads}@anchor{27b} +@anchor{gnat_rm/the_gnat_library id4}@anchor{27c}@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila1-ads}@anchor{27d} @section @cite{Ada.Characters.Wide_Latin_9} (@code{a-cwila1.ads}) @@ -21952,7 +21993,7 @@ is specifically authorized by the Ada Reference Manual (RM A.3.3(27)). @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila1 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{27c}@anchor{gnat_rm/the_gnat_library id5}@anchor{27d} +@anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{27e}@anchor{gnat_rm/the_gnat_library id5}@anchor{27f} @section @cite{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads}) @@ -21969,7 +22010,7 @@ is specifically authorized by the Ada Reference Manual (RM A.3.3(27)). @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Formal_Doubly_Linked_Lists a-cfdlli ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{27e}@anchor{gnat_rm/the_gnat_library id6}@anchor{27f} +@anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{280}@anchor{gnat_rm/the_gnat_library id6}@anchor{281} @section @cite{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads}) @@ -21986,7 +22027,7 @@ is specifically authorized by the Ada Reference Manual (RM A.3.3(27)). @node Ada Containers Formal_Doubly_Linked_Lists a-cfdlli ads,Ada Containers Formal_Hashed_Maps a-cfhama ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id7}@anchor{280}@anchor{gnat_rm/the_gnat_library ada-containers-formal-doubly-linked-lists-a-cfdlli-ads}@anchor{281} +@anchor{gnat_rm/the_gnat_library id7}@anchor{282}@anchor{gnat_rm/the_gnat_library ada-containers-formal-doubly-linked-lists-a-cfdlli-ads}@anchor{283} @section @cite{Ada.Containers.Formal_Doubly_Linked_Lists} (@code{a-cfdlli.ads}) @@ -22005,7 +22046,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Formal_Hashed_Maps a-cfhama ads,Ada Containers Formal_Hashed_Sets a-cfhase ads,Ada Containers Formal_Doubly_Linked_Lists a-cfdlli ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id8}@anchor{282}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-maps-a-cfhama-ads}@anchor{283} +@anchor{gnat_rm/the_gnat_library id8}@anchor{284}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-maps-a-cfhama-ads}@anchor{285} @section @cite{Ada.Containers.Formal_Hashed_Maps} (@code{a-cfhama.ads}) @@ -22024,7 +22065,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Formal_Hashed_Sets a-cfhase ads,Ada Containers Formal_Ordered_Maps a-cforma ads,Ada Containers Formal_Hashed_Maps a-cfhama ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id9}@anchor{284}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-sets-a-cfhase-ads}@anchor{285} +@anchor{gnat_rm/the_gnat_library id9}@anchor{286}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-sets-a-cfhase-ads}@anchor{287} @section @cite{Ada.Containers.Formal_Hashed_Sets} (@code{a-cfhase.ads}) @@ -22043,7 +22084,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Formal_Ordered_Maps a-cforma ads,Ada Containers Formal_Ordered_Sets a-cforse ads,Ada Containers Formal_Hashed_Sets a-cfhase ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id10}@anchor{286}@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-maps-a-cforma-ads}@anchor{287} +@anchor{gnat_rm/the_gnat_library id10}@anchor{288}@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-maps-a-cforma-ads}@anchor{289} @section @cite{Ada.Containers.Formal_Ordered_Maps} (@code{a-cforma.ads}) @@ -22062,7 +22103,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Formal_Ordered_Sets a-cforse ads,Ada Containers Formal_Vectors a-cofove ads,Ada Containers Formal_Ordered_Maps a-cforma ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-sets-a-cforse-ads}@anchor{288}@anchor{gnat_rm/the_gnat_library id11}@anchor{289} +@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-sets-a-cforse-ads}@anchor{28a}@anchor{gnat_rm/the_gnat_library id11}@anchor{28b} @section @cite{Ada.Containers.Formal_Ordered_Sets} (@code{a-cforse.ads}) @@ -22081,7 +22122,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Formal_Vectors a-cofove ads,Ada Containers Formal_Indefinite_Vectors a-cfinve ads,Ada Containers Formal_Ordered_Sets a-cforse ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id12}@anchor{28a}@anchor{gnat_rm/the_gnat_library ada-containers-formal-vectors-a-cofove-ads}@anchor{28b} +@anchor{gnat_rm/the_gnat_library id12}@anchor{28c}@anchor{gnat_rm/the_gnat_library ada-containers-formal-vectors-a-cofove-ads}@anchor{28d} @section @cite{Ada.Containers.Formal_Vectors} (@code{a-cofove.ads}) @@ -22100,7 +22141,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Formal_Indefinite_Vectors a-cfinve ads,Ada Containers Bounded_Holders a-coboho ads,Ada Containers Formal_Vectors a-cofove ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id13}@anchor{28c}@anchor{gnat_rm/the_gnat_library ada-containers-formal-indefinite-vectors-a-cfinve-ads}@anchor{28d} +@anchor{gnat_rm/the_gnat_library id13}@anchor{28e}@anchor{gnat_rm/the_gnat_library ada-containers-formal-indefinite-vectors-a-cfinve-ads}@anchor{28f} @section @cite{Ada.Containers.Formal_Indefinite_Vectors} (@code{a-cfinve.ads}) @@ -22119,7 +22160,7 @@ efficient version than the one defined in the standard. In particular it does not have the complex overhead required to detect cursor tampering. @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Containers Formal_Indefinite_Vectors a-cfinve ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id14}@anchor{28e}@anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{28f} +@anchor{gnat_rm/the_gnat_library id14}@anchor{290}@anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{291} @section @cite{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads}) @@ -22131,7 +22172,7 @@ This child of @cite{Ada.Containers} defines a modified version of Indefinite_Holders that avoids heap allocation. @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{290}@anchor{gnat_rm/the_gnat_library id15}@anchor{291} +@anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{292}@anchor{gnat_rm/the_gnat_library id15}@anchor{293} @section @cite{Ada.Command_Line.Environment} (@code{a-colien.ads}) @@ -22144,7 +22185,7 @@ provides a mechanism for obtaining environment values on systems where this concept makes sense. @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id16}@anchor{292}@anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{293} +@anchor{gnat_rm/the_gnat_library id16}@anchor{294}@anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{295} @section @cite{Ada.Command_Line.Remove} (@code{a-colire.ads}) @@ -22162,7 +22203,7 @@ to further calls on the subprograms in @cite{Ada.Command_Line} will not see the removed argument. @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{294}@anchor{gnat_rm/the_gnat_library id17}@anchor{295} +@anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{296}@anchor{gnat_rm/the_gnat_library id17}@anchor{297} @section @cite{Ada.Command_Line.Response_File} (@code{a-clrefi.ads}) @@ -22182,7 +22223,7 @@ Using a response file allow passing a set of arguments to an executable longer than the maximum allowed by the system on the command line. @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id18}@anchor{296}@anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{297} +@anchor{gnat_rm/the_gnat_library id18}@anchor{298}@anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{299} @section @cite{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads}) @@ -22197,7 +22238,7 @@ extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side. @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id19}@anchor{298}@anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{299} +@anchor{gnat_rm/the_gnat_library id19}@anchor{29a}@anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{29b} @section @cite{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads}) @@ -22211,7 +22252,7 @@ exception occurrence (@cite{Null_Occurrence}) without raising an exception. @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id20}@anchor{29a}@anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{29b} +@anchor{gnat_rm/the_gnat_library id20}@anchor{29c}@anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{29d} @section @cite{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads}) @@ -22225,7 +22266,7 @@ exceptions (hence the name last chance), and perform clean ups before terminating the program. Note that this subprogram never returns. @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{29c}@anchor{gnat_rm/the_gnat_library id21}@anchor{29d} +@anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{29e}@anchor{gnat_rm/the_gnat_library id21}@anchor{29f} @section @cite{Ada.Exceptions.Traceback} (@code{a-exctra.ads}) @@ -22238,7 +22279,7 @@ give a traceback array of addresses based on an exception occurrence. @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{29e}@anchor{gnat_rm/the_gnat_library id22}@anchor{29f} +@anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{2a0}@anchor{gnat_rm/the_gnat_library id22}@anchor{2a1} @section @cite{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads}) @@ -22253,7 +22294,7 @@ extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side. @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id23}@anchor{2a0}@anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{2a1} +@anchor{gnat_rm/the_gnat_library id23}@anchor{2a2}@anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{2a3} @section @cite{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads}) @@ -22268,7 +22309,7 @@ extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side. @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{2a2}@anchor{gnat_rm/the_gnat_library id24}@anchor{2a3} +@anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{2a4}@anchor{gnat_rm/the_gnat_library id24}@anchor{2a5} @section @cite{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads}) @@ -22285,7 +22326,7 @@ strings, avoiding the necessity for an intermediate operation with ordinary strings. @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id25}@anchor{2a4}@anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{2a5} +@anchor{gnat_rm/the_gnat_library id25}@anchor{2a6}@anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{2a7} @section @cite{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads}) @@ -22302,7 +22343,7 @@ wide strings, avoiding the necessity for an intermediate operation with ordinary wide strings. @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{2a6}@anchor{gnat_rm/the_gnat_library id26}@anchor{2a7} +@anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{2a8}@anchor{gnat_rm/the_gnat_library id26}@anchor{2a9} @section @cite{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads}) @@ -22319,7 +22360,7 @@ wide wide strings, avoiding the necessity for an intermediate operation with ordinary wide wide strings. @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{2a8}@anchor{gnat_rm/the_gnat_library id27}@anchor{2a9} +@anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{2aa}@anchor{gnat_rm/the_gnat_library id27}@anchor{2ab} @section @cite{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads}) @@ -22334,7 +22375,7 @@ extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side. @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id28}@anchor{2aa}@anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{2ab} +@anchor{gnat_rm/the_gnat_library id28}@anchor{2ac}@anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{2ad} @section @cite{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads}) @@ -22349,7 +22390,7 @@ execution (for example a standard input file may be redefined to be interactive). @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id29}@anchor{2ac}@anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{2ad} +@anchor{gnat_rm/the_gnat_library id29}@anchor{2ae}@anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{2af} @section @cite{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads}) @@ -22362,7 +22403,7 @@ This package provides subprograms that allow categorization of Wide_Character values according to Unicode categories. @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{2ae}@anchor{gnat_rm/the_gnat_library id30}@anchor{2af} +@anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{2b0}@anchor{gnat_rm/the_gnat_library id30}@anchor{2b1} @section @cite{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads}) @@ -22377,7 +22418,7 @@ extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side. @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{2b0}@anchor{gnat_rm/the_gnat_library id31}@anchor{2b1} +@anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{2b2}@anchor{gnat_rm/the_gnat_library id31}@anchor{2b3} @section @cite{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads}) @@ -22392,7 +22433,7 @@ execution (for example a standard input file may be redefined to be interactive). @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id32}@anchor{2b2}@anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{2b3} +@anchor{gnat_rm/the_gnat_library id32}@anchor{2b4}@anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{2b5} @section @cite{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads}) @@ -22405,7 +22446,7 @@ This package provides subprograms that allow categorization of Wide_Wide_Character values according to Unicode categories. @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id33}@anchor{2b4}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{2b5} +@anchor{gnat_rm/the_gnat_library id33}@anchor{2b6}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{2b7} @section @cite{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads}) @@ -22420,7 +22461,7 @@ extracted from a file opened on the Ada side, and an Ada file can be constructed from a stream opened on the C side. @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id34}@anchor{2b6}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{2b7} +@anchor{gnat_rm/the_gnat_library id34}@anchor{2b8}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{2b9} @section @cite{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads}) @@ -22435,7 +22476,7 @@ change during execution (for example a standard input file may be redefined to be interactive). @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{2b8}@anchor{gnat_rm/the_gnat_library id35}@anchor{2b9} +@anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{2ba}@anchor{gnat_rm/the_gnat_library id35}@anchor{2bb} @section @cite{GNAT.Altivec} (@code{g-altive.ads}) @@ -22448,7 +22489,7 @@ definitions of constants and types common to all the versions of the binding. @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id36}@anchor{2ba}@anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{2bb} +@anchor{gnat_rm/the_gnat_library id36}@anchor{2bc}@anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{2bd} @section @cite{GNAT.Altivec.Conversions} (@code{g-altcon.ads}) @@ -22459,7 +22500,7 @@ binding. This package provides the Vector/View conversion routines. @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id37}@anchor{2bc}@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{2bd} +@anchor{gnat_rm/the_gnat_library id37}@anchor{2be}@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{2bf} @section @cite{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads}) @@ -22473,7 +22514,7 @@ library. The hard binding is provided as a separate package. This unit is common to both bindings. @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{2be}@anchor{gnat_rm/the_gnat_library id38}@anchor{2bf} +@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{2c0}@anchor{gnat_rm/the_gnat_library id38}@anchor{2c1} @section @cite{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads}) @@ -22485,7 +22526,7 @@ This package exposes the various vector types part of the Ada binding to AltiVec facilities. @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{2c0}@anchor{gnat_rm/the_gnat_library id39}@anchor{2c1} +@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{2c2}@anchor{gnat_rm/the_gnat_library id39}@anchor{2c3} @section @cite{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads}) @@ -22500,7 +22541,7 @@ vector elements and provides a simple way to initialize vector objects. @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{2c2}@anchor{gnat_rm/the_gnat_library id40}@anchor{2c3} +@anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{2c4}@anchor{gnat_rm/the_gnat_library id40}@anchor{2c5} @section @cite{GNAT.Array_Split} (@code{g-arrspl.ads}) @@ -22513,7 +22554,7 @@ an array wherever the separators appear, and provide direct access to the resulting slices. @node GNAT AWK g-awk ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Array_Split g-arrspl ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id41}@anchor{2c4}@anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{2c5} +@anchor{gnat_rm/the_gnat_library id41}@anchor{2c6}@anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{2c7} @section @cite{GNAT.AWK} (@code{g-awk.ads}) @@ -22528,7 +22569,7 @@ or more files containing formatted data. The file is viewed as a database where each record is a line and a field is a data element in this line. @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT AWK g-awk ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{2c6}@anchor{gnat_rm/the_gnat_library id42}@anchor{2c7} +@anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{2c8}@anchor{gnat_rm/the_gnat_library id42}@anchor{2c9} @section @cite{GNAT.Bounded_Buffers} (@code{g-boubuf.ads}) @@ -22543,7 +22584,7 @@ useful directly or as parts of the implementations of other abstractions, such as mailboxes. @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{2c8}@anchor{gnat_rm/the_gnat_library id43}@anchor{2c9} +@anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{2ca}@anchor{gnat_rm/the_gnat_library id43}@anchor{2cb} @section @cite{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads}) @@ -22556,7 +22597,7 @@ such as mailboxes. Provides a thread-safe asynchronous intertask mailbox communication facility. @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{2ca}@anchor{gnat_rm/the_gnat_library id44}@anchor{2cb} +@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{2cc}@anchor{gnat_rm/the_gnat_library id44}@anchor{2cd} @section @cite{GNAT.Bubble_Sort} (@code{g-bubsor.ads}) @@ -22571,7 +22612,7 @@ data items. Exchange and comparison procedures are provided by passing access-to-procedure values. @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id45}@anchor{2cc}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{2cd} +@anchor{gnat_rm/the_gnat_library id45}@anchor{2ce}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{2cf} @section @cite{GNAT.Bubble_Sort_A} (@code{g-busora.ads}) @@ -22587,7 +22628,7 @@ access-to-procedure values. This is an older version, retained for compatibility. Usually @cite{GNAT.Bubble_Sort} will be preferable. @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id46}@anchor{2ce}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{2cf} +@anchor{gnat_rm/the_gnat_library id46}@anchor{2d0}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{2d1} @section @cite{GNAT.Bubble_Sort_G} (@code{g-busorg.ads}) @@ -22603,7 +22644,7 @@ if the procedures can be inlined, at the expense of duplicating code for multiple instantiations. @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id47}@anchor{2d0}@anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{2d1} +@anchor{gnat_rm/the_gnat_library id47}@anchor{2d2}@anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{2d3} @section @cite{GNAT.Byte_Order_Mark} (@code{g-byorma.ads}) @@ -22619,7 +22660,7 @@ the encoding of the string. The routine includes detection of special XML sequences for various UCS input formats. @node GNAT Byte_Swapping g-bytswa ads,GNAT Calendar g-calend ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{2d2}@anchor{gnat_rm/the_gnat_library id48}@anchor{2d3} +@anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{2d4}@anchor{gnat_rm/the_gnat_library id48}@anchor{2d5} @section @cite{GNAT.Byte_Swapping} (@code{g-bytswa.ads}) @@ -22633,7 +22674,7 @@ General routines for swapping the bytes in 2-, 4-, and 8-byte quantities. Machine-specific implementations are available in some cases. @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{2d4}@anchor{gnat_rm/the_gnat_library id49}@anchor{2d5} +@anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{2d6}@anchor{gnat_rm/the_gnat_library id49}@anchor{2d7} @section @cite{GNAT.Calendar} (@code{g-calend.ads}) @@ -22647,7 +22688,7 @@ Also provides conversion of @cite{Ada.Calendar.Time} values to and from the C @cite{timeval} format. @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{2d6}@anchor{gnat_rm/the_gnat_library id50}@anchor{2d7} +@anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{2d8}@anchor{gnat_rm/the_gnat_library id50}@anchor{2d9} @section @cite{GNAT.Calendar.Time_IO} (@code{g-catiio.ads}) @@ -22658,7 +22699,7 @@ C @cite{timeval} format. @geindex GNAT.Calendar.Time_IO (g-catiio.ads) @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id51}@anchor{2d8}@anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{2d9} +@anchor{gnat_rm/the_gnat_library id51}@anchor{2da}@anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{2db} @section @cite{GNAT.CRC32} (@code{g-crc32.ads}) @@ -22675,7 +22716,7 @@ of this algorithm see Aug. 1988. Sarwate, D.V. @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{2da}@anchor{gnat_rm/the_gnat_library id52}@anchor{2db} +@anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{2dc}@anchor{gnat_rm/the_gnat_library id52}@anchor{2dd} @section @cite{GNAT.Case_Util} (@code{g-casuti.ads}) @@ -22690,7 +22731,7 @@ without the overhead of the full casing tables in @cite{Ada.Characters.Handling}. @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id53}@anchor{2dc}@anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{2dd} +@anchor{gnat_rm/the_gnat_library id53}@anchor{2de}@anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{2df} @section @cite{GNAT.CGI} (@code{g-cgi.ads}) @@ -22705,7 +22746,7 @@ builds a table whose index is the key and provides some services to deal with this table. @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id54}@anchor{2de}@anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{2df} +@anchor{gnat_rm/the_gnat_library id54}@anchor{2e0}@anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{2e1} @section @cite{GNAT.CGI.Cookie} (@code{g-cgicoo.ads}) @@ -22720,7 +22761,7 @@ Common Gateway Interface (CGI). It exports services to deal with Web cookies (piece of information kept in the Web client software). @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{2e0}@anchor{gnat_rm/the_gnat_library id55}@anchor{2e1} +@anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{2e2}@anchor{gnat_rm/the_gnat_library id55}@anchor{2e3} @section @cite{GNAT.CGI.Debug} (@code{g-cgideb.ads}) @@ -22732,7 +22773,7 @@ This is a package to help debugging CGI (Common Gateway Interface) programs written in Ada. @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id56}@anchor{2e2}@anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{2e3} +@anchor{gnat_rm/the_gnat_library id56}@anchor{2e4}@anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{2e5} @section @cite{GNAT.Command_Line} (@code{g-comlin.ads}) @@ -22745,7 +22786,7 @@ including the ability to scan for named switches with optional parameters and expand file names using wild card notations. @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{2e4}@anchor{gnat_rm/the_gnat_library id57}@anchor{2e5} +@anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{2e6}@anchor{gnat_rm/the_gnat_library id57}@anchor{2e7} @section @cite{GNAT.Compiler_Version} (@code{g-comver.ads}) @@ -22763,7 +22804,7 @@ of the compiler if a consistent tool set is used to compile all units of a partition). @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id58}@anchor{2e6}@anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{2e7} +@anchor{gnat_rm/the_gnat_library id58}@anchor{2e8}@anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{2e9} @section @cite{GNAT.Ctrl_C} (@code{g-ctrl_c.ads}) @@ -22774,7 +22815,7 @@ of a partition). Provides a simple interface to handle Ctrl-C keyboard events. @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id59}@anchor{2e8}@anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{2e9} +@anchor{gnat_rm/the_gnat_library id59}@anchor{2ea}@anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{2eb} @section @cite{GNAT.Current_Exception} (@code{g-curexc.ads}) @@ -22791,7 +22832,7 @@ This is particularly useful in simulating typical facilities for obtaining information about exceptions provided by Ada 83 compilers. @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{2ea}@anchor{gnat_rm/the_gnat_library id60}@anchor{2eb} +@anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{2ec}@anchor{gnat_rm/the_gnat_library id60}@anchor{2ed} @section @cite{GNAT.Debug_Pools} (@code{g-debpoo.ads}) @@ -22808,7 +22849,7 @@ problems. See @cite{The GNAT Debug_Pool Facility} section in the @cite{GNAT User's Guide}. @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{2ec}@anchor{gnat_rm/the_gnat_library id61}@anchor{2ed} +@anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{2ee}@anchor{gnat_rm/the_gnat_library id61}@anchor{2ef} @section @cite{GNAT.Debug_Utilities} (@code{g-debuti.ads}) @@ -22821,7 +22862,7 @@ to and from string images of address values. Supports both C and Ada formats for hexadecimal literals. @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{2ee}@anchor{gnat_rm/the_gnat_library id62}@anchor{2ef} +@anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{2f0}@anchor{gnat_rm/the_gnat_library id62}@anchor{2f1} @section @cite{GNAT.Decode_String} (@code{g-decstr.ads}) @@ -22845,7 +22886,7 @@ Useful in conjunction with Unicode character coding. Note there is a preinstantiation for UTF-8. See next entry. @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{2f0}@anchor{gnat_rm/the_gnat_library id63}@anchor{2f1} +@anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{2f2}@anchor{gnat_rm/the_gnat_library id63}@anchor{2f3} @section @cite{GNAT.Decode_UTF8_String} (@code{g-deutst.ads}) @@ -22866,7 +22907,7 @@ preinstantiation for UTF-8. See next entry. A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding. @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id64}@anchor{2f2}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{2f3} +@anchor{gnat_rm/the_gnat_library id64}@anchor{2f4}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{2f5} @section @cite{GNAT.Directory_Operations} (@code{g-dirope.ads}) @@ -22879,7 +22920,7 @@ the current directory, making new directories, and scanning the files in a directory. @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id65}@anchor{2f4}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{2f5} +@anchor{gnat_rm/the_gnat_library id65}@anchor{2f6}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{2f7} @section @cite{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads}) @@ -22891,7 +22932,7 @@ A child unit of GNAT.Directory_Operations providing additional operations for iterating through directories. @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{2f6}@anchor{gnat_rm/the_gnat_library id66}@anchor{2f7} +@anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{2f8}@anchor{gnat_rm/the_gnat_library id66}@anchor{2f9} @section @cite{GNAT.Dynamic_HTables} (@code{g-dynhta.ads}) @@ -22909,7 +22950,7 @@ dynamic instances of the hash table, while an instantiation of @cite{GNAT.HTable} creates a single instance of the hash table. @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{2f8}@anchor{gnat_rm/the_gnat_library id67}@anchor{2f9} +@anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{2fa}@anchor{gnat_rm/the_gnat_library id67}@anchor{2fb} @section @cite{GNAT.Dynamic_Tables} (@code{g-dyntab.ads}) @@ -22929,7 +22970,7 @@ dynamic instances of the table, while an instantiation of @cite{GNAT.Table} creates a single instance of the table type. @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id68}@anchor{2fa}@anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{2fb} +@anchor{gnat_rm/the_gnat_library id68}@anchor{2fc}@anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{2fd} @section @cite{GNAT.Encode_String} (@code{g-encstr.ads}) @@ -22951,7 +22992,7 @@ encoding method. Useful in conjunction with Unicode character coding. Note there is a preinstantiation for UTF-8. See next entry. @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{2fc}@anchor{gnat_rm/the_gnat_library id69}@anchor{2fd} +@anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{2fe}@anchor{gnat_rm/the_gnat_library id69}@anchor{2ff} @section @cite{GNAT.Encode_UTF8_String} (@code{g-enutst.ads}) @@ -22972,7 +23013,7 @@ Note there is a preinstantiation for UTF-8. See next entry. A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding. @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id70}@anchor{2fe}@anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{2ff} +@anchor{gnat_rm/the_gnat_library id70}@anchor{300}@anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{301} @section @cite{GNAT.Exception_Actions} (@code{g-excact.ads}) @@ -22985,7 +23026,7 @@ for specific exceptions, or when any exception is raised. This can be used for instance to force a core dump to ease debugging. @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-expect ads,GNAT Exception_Actions g-excact ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{300}@anchor{gnat_rm/the_gnat_library id71}@anchor{301} +@anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{302}@anchor{gnat_rm/the_gnat_library id71}@anchor{303} @section @cite{GNAT.Exception_Traces} (@code{g-exctra.ads}) @@ -22999,7 +23040,7 @@ Provides an interface allowing to control automatic output upon exception occurrences. @node GNAT Exceptions g-expect ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id72}@anchor{302}@anchor{gnat_rm/the_gnat_library gnat-exceptions-g-expect-ads}@anchor{303} +@anchor{gnat_rm/the_gnat_library id72}@anchor{304}@anchor{gnat_rm/the_gnat_library gnat-exceptions-g-expect-ads}@anchor{305} @section @cite{GNAT.Exceptions} (@code{g-expect.ads}) @@ -23020,7 +23061,7 @@ predefined exceptions, and for example allow raising @cite{Constraint_Error} with a message from a pure subprogram. @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-expect ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id73}@anchor{304}@anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{305} +@anchor{gnat_rm/the_gnat_library id73}@anchor{306}@anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{307} @section @cite{GNAT.Expect} (@code{g-expect.ads}) @@ -23036,7 +23077,7 @@ It is not implemented for cross ports, and in particular is not implemented for VxWorks or LynxOS. @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id74}@anchor{306}@anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{307} +@anchor{gnat_rm/the_gnat_library id74}@anchor{308}@anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{309} @section @cite{GNAT.Expect.TTY} (@code{g-exptty.ads}) @@ -23048,7 +23089,7 @@ ports. It is not implemented for cross ports, and in particular is not implemented for VxWorks or LynxOS. @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id75}@anchor{308}@anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{309} +@anchor{gnat_rm/the_gnat_library id75}@anchor{30a}@anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{30b} @section @cite{GNAT.Float_Control} (@code{g-flocon.ads}) @@ -23062,7 +23103,7 @@ library calls may cause this mode to be modified, and the Reset procedure in this package can be used to reestablish the required mode. @node GNAT Formatted_String g-forstr ads,GNAT Heap_Sort g-heasor ads,GNAT Float_Control g-flocon ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id76}@anchor{30a}@anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{30b} +@anchor{gnat_rm/the_gnat_library id76}@anchor{30c}@anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{30d} @section @cite{GNAT.Formatted_String} (@code{g-forstr.ads}) @@ -23077,7 +23118,7 @@ derived from Integer, Float or enumerations as values for the formatted string. @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Formatted_String g-forstr ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{30c}@anchor{gnat_rm/the_gnat_library id77}@anchor{30d} +@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{30e}@anchor{gnat_rm/the_gnat_library id77}@anchor{30f} @section @cite{GNAT.Heap_Sort} (@code{g-heasor.ads}) @@ -23091,7 +23132,7 @@ access-to-procedure values. The algorithm used is a modified heap sort that performs approximately N*log(N) comparisons in the worst case. @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id78}@anchor{30e}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{30f} +@anchor{gnat_rm/the_gnat_library id78}@anchor{310}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{311} @section @cite{GNAT.Heap_Sort_A} (@code{g-hesora.ads}) @@ -23107,7 +23148,7 @@ This differs from @cite{GNAT.Heap_Sort} in having a less convenient interface, but may be slightly more efficient. @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id79}@anchor{310}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{311} +@anchor{gnat_rm/the_gnat_library id79}@anchor{312}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{313} @section @cite{GNAT.Heap_Sort_G} (@code{g-hesorg.ads}) @@ -23121,7 +23162,7 @@ if the procedures can be inlined, at the expense of duplicating code for multiple instantiations. @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id80}@anchor{312}@anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{313} +@anchor{gnat_rm/the_gnat_library id80}@anchor{314}@anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{315} @section @cite{GNAT.HTable} (@code{g-htable.ads}) @@ -23134,7 +23175,7 @@ data. Provides two approaches, one a simple static approach, and the other allowing arbitrary dynamic hash tables. @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id81}@anchor{314}@anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{315} +@anchor{gnat_rm/the_gnat_library id81}@anchor{316}@anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{317} @section @cite{GNAT.IO} (@code{g-io.ads}) @@ -23150,7 +23191,7 @@ Standard_Input, and writing characters, strings and integers to either Standard_Output or Standard_Error. @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id82}@anchor{316}@anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{317} +@anchor{gnat_rm/the_gnat_library id82}@anchor{318}@anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{319} @section @cite{GNAT.IO_Aux} (@code{g-io_aux.ads}) @@ -23164,7 +23205,7 @@ Provides some auxiliary functions for use with Text_IO, including a test for whether a file exists, and functions for reading a line of text. @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id83}@anchor{318}@anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{319} +@anchor{gnat_rm/the_gnat_library id83}@anchor{31a}@anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{31b} @section @cite{GNAT.Lock_Files} (@code{g-locfil.ads}) @@ -23178,7 +23219,7 @@ Provides a general interface for using files as locks. Can be used for providing program level synchronization. @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{31a}@anchor{gnat_rm/the_gnat_library id84}@anchor{31b} +@anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{31c}@anchor{gnat_rm/the_gnat_library id84}@anchor{31d} @section @cite{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads}) @@ -23190,7 +23231,7 @@ The original implementation of @cite{Ada.Numerics.Discrete_Random}. Uses a modified version of the Blum-Blum-Shub generator. @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id85}@anchor{31c}@anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{31d} +@anchor{gnat_rm/the_gnat_library id85}@anchor{31e}@anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{31f} @section @cite{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads}) @@ -23202,7 +23243,7 @@ The original implementation of @cite{Ada.Numerics.Float_Random}. Uses a modified version of the Blum-Blum-Shub generator. @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id86}@anchor{31e}@anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{31f} +@anchor{gnat_rm/the_gnat_library id86}@anchor{320}@anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{321} @section @cite{GNAT.MD5} (@code{g-md5.ads}) @@ -23215,7 +23256,7 @@ the HMAC-MD5 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id87}@anchor{320}@anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{321} +@anchor{gnat_rm/the_gnat_library id87}@anchor{322}@anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{323} @section @cite{GNAT.Memory_Dump} (@code{g-memdum.ads}) @@ -23228,7 +23269,7 @@ standard output or standard error files. Uses GNAT.IO for actual output. @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id88}@anchor{322}@anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{323} +@anchor{gnat_rm/the_gnat_library id88}@anchor{324}@anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{325} @section @cite{GNAT.Most_Recent_Exception} (@code{g-moreex.ads}) @@ -23242,7 +23283,7 @@ various logging purposes, including duplicating functionality of some Ada 83 implementation dependent extensions. @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id89}@anchor{324}@anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{325} +@anchor{gnat_rm/the_gnat_library id89}@anchor{326}@anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{327} @section @cite{GNAT.OS_Lib} (@code{g-os_lib.ads}) @@ -23258,7 +23299,7 @@ including a portable spawn procedure, and access to environment variables and error return codes. @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id90}@anchor{326}@anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{327} +@anchor{gnat_rm/the_gnat_library id90}@anchor{328}@anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{329} @section @cite{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads}) @@ -23276,7 +23317,7 @@ hashcode are in the same order. These hashing functions are very convenient for use with realtime applications. @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id91}@anchor{328}@anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{329} +@anchor{gnat_rm/the_gnat_library id91}@anchor{32a}@anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{32b} @section @cite{GNAT.Random_Numbers} (@code{g-rannum.ads}) @@ -23288,7 +23329,7 @@ Provides random number capabilities which extend those available in the standard Ada library and are more convenient to use. @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{1fd}@anchor{gnat_rm/the_gnat_library id92}@anchor{32a} +@anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{1ff}@anchor{gnat_rm/the_gnat_library id92}@anchor{32c} @section @cite{GNAT.Regexp} (@code{g-regexp.ads}) @@ -23304,7 +23345,7 @@ simplest of the three pattern matching packages provided, and is particularly suitable for 'file globbing' applications. @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id93}@anchor{32b}@anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{32c} +@anchor{gnat_rm/the_gnat_library id93}@anchor{32d}@anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{32e} @section @cite{GNAT.Registry} (@code{g-regist.ads}) @@ -23318,7 +23359,7 @@ registry API, but at a lower level of abstraction, refer to the Win32.Winreg package provided with the Win32Ada binding @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id94}@anchor{32d}@anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{32e} +@anchor{gnat_rm/the_gnat_library id94}@anchor{32f}@anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{330} @section @cite{GNAT.Regpat} (@code{g-regpat.ads}) @@ -23333,7 +23374,7 @@ from the original V7 style regular expression library written in C by Henry Spencer (and binary compatible with this C library). @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id95}@anchor{32f}@anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{330} +@anchor{gnat_rm/the_gnat_library id95}@anchor{331}@anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{332} @section @cite{GNAT.Rewrite_Data} (@code{g-rewdat.ads}) @@ -23347,7 +23388,7 @@ full content to be processed is not loaded into memory all at once. This makes this interface usable for large files or socket streams. @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{331}@anchor{gnat_rm/the_gnat_library id96}@anchor{332} +@anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id96}@anchor{334} @section @cite{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads}) @@ -23359,7 +23400,7 @@ Provide the capability to query the high water mark of the current task's secondary stack. @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id97}@anchor{334} +@anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{335}@anchor{gnat_rm/the_gnat_library id97}@anchor{336} @section @cite{GNAT.Semaphores} (@code{g-semaph.ads}) @@ -23370,7 +23411,7 @@ secondary stack. Provides classic counting and binary semaphores using protected types. @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id98}@anchor{335}@anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{336} +@anchor{gnat_rm/the_gnat_library id98}@anchor{337}@anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{338} @section @cite{GNAT.Serial_Communications} (@code{g-sercom.ads}) @@ -23382,7 +23423,7 @@ Provides a simple interface to send and receive data over a serial port. This is only supported on GNU/Linux and Windows. @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id99}@anchor{338} +@anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{339}@anchor{gnat_rm/the_gnat_library id99}@anchor{33a} @section @cite{GNAT.SHA1} (@code{g-sha1.ads}) @@ -23395,7 +23436,7 @@ and RFC 3174, and the HMAC-SHA1 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id100}@anchor{339}@anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{33a} +@anchor{gnat_rm/the_gnat_library id100}@anchor{33b}@anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{33c} @section @cite{GNAT.SHA224} (@code{g-sha224.ads}) @@ -23408,7 +23449,7 @@ and the HMAC-SHA224 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id101}@anchor{33b}@anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{33c} +@anchor{gnat_rm/the_gnat_library id101}@anchor{33d}@anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{33e} @section @cite{GNAT.SHA256} (@code{g-sha256.ads}) @@ -23421,7 +23462,7 @@ and the HMAC-SHA256 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id102}@anchor{33d}@anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{33e} +@anchor{gnat_rm/the_gnat_library id102}@anchor{33f}@anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{340} @section @cite{GNAT.SHA384} (@code{g-sha384.ads}) @@ -23434,7 +23475,7 @@ and the HMAC-SHA384 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id103}@anchor{33f}@anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{340} +@anchor{gnat_rm/the_gnat_library id103}@anchor{341}@anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{342} @section @cite{GNAT.SHA512} (@code{g-sha512.ads}) @@ -23447,7 +23488,7 @@ and the HMAC-SHA512 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{341}@anchor{gnat_rm/the_gnat_library id104}@anchor{342} +@anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{343}@anchor{gnat_rm/the_gnat_library id104}@anchor{344} @section @cite{GNAT.Signals} (@code{g-signal.ads}) @@ -23459,7 +23500,7 @@ Provides the ability to manipulate the blocked status of signals on supported targets. @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{343}@anchor{gnat_rm/the_gnat_library id105}@anchor{344} +@anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id105}@anchor{346} @section @cite{GNAT.Sockets} (@code{g-socket.ads}) @@ -23474,7 +23515,7 @@ on all native GNAT ports and on VxWorks cross prots. It is not implemented for the LynxOS cross port. @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id106}@anchor{346} +@anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id106}@anchor{348} @section @cite{GNAT.Source_Info} (@code{g-souinf.ads}) @@ -23488,7 +23529,7 @@ subprograms yielding the date and time of the current compilation (like the C macros @cite{__DATE__} and @cite{__TIME__}) @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id107}@anchor{348} +@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id107}@anchor{34a} @section @cite{GNAT.Spelling_Checker} (@code{g-speche.ads}) @@ -23500,7 +23541,7 @@ Provides a function for determining whether one string is a plausible near misspelling of another string. @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id108}@anchor{34a} +@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id108}@anchor{34c} @section @cite{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads}) @@ -23513,7 +23554,7 @@ determining whether one string is a plausible near misspelling of another string. @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id109}@anchor{34b}@anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{34c} +@anchor{gnat_rm/the_gnat_library id109}@anchor{34d}@anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{34e} @section @cite{GNAT.Spitbol.Patterns} (@code{g-spipat.ads}) @@ -23529,7 +23570,7 @@ the SNOBOL4 dynamic pattern construction and matching capabilities, using the efficient algorithm developed by Robert Dewar for the SPITBOL system. @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id110}@anchor{34d}@anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{34e} +@anchor{gnat_rm/the_gnat_library id110}@anchor{34f}@anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{350} @section @cite{GNAT.Spitbol} (@code{g-spitbo.ads}) @@ -23544,7 +23585,7 @@ useful for constructing arbitrary mappings from strings in the style of the SNOBOL4 TABLE function. @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id111}@anchor{34f}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{350} +@anchor{gnat_rm/the_gnat_library id111}@anchor{351}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{352} @section @cite{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads}) @@ -23559,7 +23600,7 @@ for type @cite{Standard.Boolean}, giving an implementation of sets of string values. @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id112}@anchor{351}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{352} +@anchor{gnat_rm/the_gnat_library id112}@anchor{353}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{354} @section @cite{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads}) @@ -23576,7 +23617,7 @@ for type @cite{Standard.Integer}, giving an implementation of maps from string to integer values. @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id113}@anchor{353}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{354} +@anchor{gnat_rm/the_gnat_library id113}@anchor{355}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{356} @section @cite{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads}) @@ -23593,7 +23634,7 @@ a variable length string type, giving an implementation of general maps from strings to strings. @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id114}@anchor{355}@anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{356} +@anchor{gnat_rm/the_gnat_library id114}@anchor{357}@anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{358} @section @cite{GNAT.SSE} (@code{g-sse.ads}) @@ -23605,7 +23646,7 @@ targets. It exposes vector component types together with a general introduction to the binding contents and use. @node GNAT SSE Vector_Types g-ssvety ads,GNAT Strings g-string ads,GNAT SSE g-sse ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{357}@anchor{gnat_rm/the_gnat_library id115}@anchor{358} +@anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{359}@anchor{gnat_rm/the_gnat_library id115}@anchor{35a} @section @cite{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads}) @@ -23614,7 +23655,7 @@ introduction to the binding contents and use. SSE vector types for use with SSE related intrinsics. @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id116}@anchor{359}@anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{35a} +@anchor{gnat_rm/the_gnat_library id116}@anchor{35b}@anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{35c} @section @cite{GNAT.Strings} (@code{g-string.ads}) @@ -23624,7 +23665,7 @@ Common String access types and related subprograms. Basically it defines a string access and an array of string access types. @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id117}@anchor{35c} +@anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{35d}@anchor{gnat_rm/the_gnat_library id117}@anchor{35e} @section @cite{GNAT.String_Split} (@code{g-strspl.ads}) @@ -23638,7 +23679,7 @@ to the resulting slices. This package is instantiated from @cite{GNAT.Array_Split}. @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id118}@anchor{35d}@anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{35e} +@anchor{gnat_rm/the_gnat_library id118}@anchor{35f}@anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{360} @section @cite{GNAT.Table} (@code{g-table.ads}) @@ -23658,7 +23699,7 @@ while an instantiation of @cite{GNAT.Dynamic_Tables} creates a type that can be used to define dynamic instances of the table. @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{35f}@anchor{gnat_rm/the_gnat_library id119}@anchor{360} +@anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id119}@anchor{362} @section @cite{GNAT.Task_Lock} (@code{g-tasloc.ads}) @@ -23675,7 +23716,7 @@ single global task lock. Appropriate for use in situations where contention between tasks is very rarely expected. @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id120}@anchor{362} +@anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id120}@anchor{364} @section @cite{GNAT.Time_Stamp} (@code{g-timsta.ads}) @@ -23690,7 +23731,7 @@ represents the current date and time in ISO 8601 format. This is a very simple routine with minimal code and there are no dependencies on any other unit. @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id121}@anchor{364} +@anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{365}@anchor{gnat_rm/the_gnat_library id121}@anchor{366} @section @cite{GNAT.Threads} (@code{g-thread.ads}) @@ -23707,7 +23748,7 @@ further details if your program has threads that are created by a non-Ada environment which then accesses Ada code. @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id122}@anchor{365}@anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{366} +@anchor{gnat_rm/the_gnat_library id122}@anchor{367}@anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{368} @section @cite{GNAT.Traceback} (@code{g-traceb.ads}) @@ -23719,7 +23760,7 @@ Provides a facility for obtaining non-symbolic traceback information, useful in various debugging situations. @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-table ads,GNAT Traceback g-traceb ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id123}@anchor{368} +@anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{369}@anchor{gnat_rm/the_gnat_library id123}@anchor{36a} @section @cite{GNAT.Traceback.Symbolic} (@code{g-trasym.ads}) @@ -23728,7 +23769,7 @@ in various debugging situations. @geindex Trace back facilities @node GNAT UTF_32 g-table ads,GNAT Wide_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id124}@anchor{369}@anchor{gnat_rm/the_gnat_library gnat-utf-32-g-table-ads}@anchor{36a} +@anchor{gnat_rm/the_gnat_library id124}@anchor{36b}@anchor{gnat_rm/the_gnat_library gnat-utf-32-g-table-ads}@anchor{36c} @section @cite{GNAT.UTF_32} (@code{g-table.ads}) @@ -23747,7 +23788,7 @@ lower case to upper case fold routine corresponding to the Ada 2005 rules for identifier equivalence. @node GNAT Wide_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-table ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-u3spch-ads}@anchor{36b}@anchor{gnat_rm/the_gnat_library id125}@anchor{36c} +@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-u3spch-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id125}@anchor{36e} @section @cite{GNAT.Wide_Spelling_Checker} (@code{g-u3spch.ads}) @@ -23760,7 +23801,7 @@ near misspelling of another wide wide string, where the strings are represented using the UTF_32_String type defined in System.Wch_Cnv. @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Spelling_Checker g-u3spch ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id126}@anchor{36e} +@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{36f}@anchor{gnat_rm/the_gnat_library id126}@anchor{370} @section @cite{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads}) @@ -23772,7 +23813,7 @@ Provides a function for determining whether one wide string is a plausible near misspelling of another wide string. @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id127}@anchor{36f}@anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{370} +@anchor{gnat_rm/the_gnat_library id127}@anchor{371}@anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{372} @section @cite{GNAT.Wide_String_Split} (@code{g-wistsp.ads}) @@ -23786,7 +23827,7 @@ to the resulting slices. This package is instantiated from @cite{GNAT.Array_Split}. @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{371}@anchor{gnat_rm/the_gnat_library id128}@anchor{372} +@anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id128}@anchor{374} @section @cite{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads}) @@ -23798,7 +23839,7 @@ Provides a function for determining whether one wide wide string is a plausible near misspelling of another wide wide string. @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id129}@anchor{374} +@anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id129}@anchor{376} @section @cite{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads}) @@ -23812,7 +23853,7 @@ to the resulting slices. This package is instantiated from @cite{GNAT.Array_Split}. @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id130}@anchor{375}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{376} +@anchor{gnat_rm/the_gnat_library id130}@anchor{377}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{378} @section @cite{Interfaces.C.Extensions} (@code{i-cexten.ads}) @@ -23823,7 +23864,7 @@ for use with either manually or automatically generated bindings to C libraries. @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id131}@anchor{377}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{378} +@anchor{gnat_rm/the_gnat_library id131}@anchor{379}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{37a} @section @cite{Interfaces.C.Streams} (@code{i-cstrea.ads}) @@ -23836,7 +23877,7 @@ This package is a binding for the most commonly used operations on C streams. @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{379}@anchor{gnat_rm/the_gnat_library id132}@anchor{37a} +@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{37b}@anchor{gnat_rm/the_gnat_library id132}@anchor{37c} @section @cite{Interfaces.Packed_Decimal} (@code{i-pacdec.ads}) @@ -23851,7 +23892,7 @@ from a packed decimal format compatible with that used on IBM mainframes. @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id133}@anchor{37b}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{37c} +@anchor{gnat_rm/the_gnat_library id133}@anchor{37d}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{37e} @section @cite{Interfaces.VxWorks} (@code{i-vxwork.ads}) @@ -23867,7 +23908,7 @@ In particular, it interfaces with the VxWorks hardware interrupt facilities. @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{37d}@anchor{gnat_rm/the_gnat_library id134}@anchor{37e} +@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id134}@anchor{380} @section @cite{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads}) @@ -23890,7 +23931,7 @@ function codes. A particular use of this package is to enable the use of Get_Immediate under VxWorks. @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id135}@anchor{380} +@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id135}@anchor{382} @section @cite{System.Address_Image} (@code{s-addima.ads}) @@ -23906,7 +23947,7 @@ function that gives an (implementation dependent) string which identifies an address. @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id136}@anchor{382} +@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{383}@anchor{gnat_rm/the_gnat_library id136}@anchor{384} @section @cite{System.Assertions} (@code{s-assert.ads}) @@ -23922,7 +23963,7 @@ by an run-time assertion failure, as well as the routine that is used internally to raise this assertion. @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id137}@anchor{383}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{384} +@anchor{gnat_rm/the_gnat_library id137}@anchor{385}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{386} @section @cite{System.Atomic_Counters} (@code{s-atocou.ads}) @@ -23936,7 +23977,7 @@ on most targets, including all Alpha, ia64, PowerPC, SPARC V9, x86, and x86_64 platforms. @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id138}@anchor{386} +@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{387}@anchor{gnat_rm/the_gnat_library id138}@anchor{388} @section @cite{System.Memory} (@code{s-memory.ads}) @@ -23954,7 +23995,7 @@ calls to this unit may be made for low level allocation uses (for example see the body of @cite{GNAT.Tables}). @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id139}@anchor{387}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{388} +@anchor{gnat_rm/the_gnat_library id139}@anchor{389}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{38a} @section @cite{System.Multiprocessors} (@code{s-multip.ads}) @@ -23967,7 +24008,7 @@ in GNAT we also make it available in Ada 95 and Ada 2005 (where it is technically an implementation-defined addition). @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{389}@anchor{gnat_rm/the_gnat_library id140}@anchor{38a} +@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{38b}@anchor{gnat_rm/the_gnat_library id140}@anchor{38c} @section @cite{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads}) @@ -23980,7 +24021,7 @@ in GNAT we also make it available in Ada 95 and Ada 2005 (where it is technically an implementation-defined addition). @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id141}@anchor{38b}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{38c} +@anchor{gnat_rm/the_gnat_library id141}@anchor{38d}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{38e} @section @cite{System.Partition_Interface} (@code{s-parint.ads}) @@ -23993,7 +24034,7 @@ is used primarily in a distribution context when using Annex E with @cite{GLADE}. @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id142}@anchor{38d}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{38e} +@anchor{gnat_rm/the_gnat_library id142}@anchor{38f}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{390} @section @cite{System.Pool_Global} (@code{s-pooglo.ads}) @@ -24010,7 +24051,7 @@ declared. It uses malloc/free to allocate/free and does not attempt to do any automatic reclamation. @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{38f}@anchor{gnat_rm/the_gnat_library id143}@anchor{390} +@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{391}@anchor{gnat_rm/the_gnat_library id143}@anchor{392} @section @cite{System.Pool_Local} (@code{s-pooloc.ads}) @@ -24027,7 +24068,7 @@ a list of allocated blocks, so that all storage allocated for the pool can be freed automatically when the pool is finalized. @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id144}@anchor{391}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{392} +@anchor{gnat_rm/the_gnat_library id144}@anchor{393}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{394} @section @cite{System.Restrictions} (@code{s-restri.ads}) @@ -24043,7 +24084,7 @@ compiler determined information on which restrictions are violated by one or more packages in the partition. @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id145}@anchor{393}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{394} +@anchor{gnat_rm/the_gnat_library id145}@anchor{395}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{396} @section @cite{System.Rident} (@code{s-rident.ads}) @@ -24059,7 +24100,7 @@ since the necessary instantiation is included in package System.Restrictions. @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id146}@anchor{395}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{396} +@anchor{gnat_rm/the_gnat_library id146}@anchor{397}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{398} @section @cite{System.Strings.Stream_Ops} (@code{s-ststop.ads}) @@ -24075,7 +24116,7 @@ stream attributes are applied to string types, but the subprograms in this package can be used directly by application programs. @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{397}@anchor{gnat_rm/the_gnat_library id147}@anchor{398} +@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id147}@anchor{39a} @section @cite{System.Unsigned_Types} (@code{s-unstyp.ads}) @@ -24088,7 +24129,7 @@ also contains some related definitions for other specialized types used by the compiler in connection with packed array types. @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id148}@anchor{39a} +@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{39b}@anchor{gnat_rm/the_gnat_library id148}@anchor{39c} @section @cite{System.Wch_Cnv} (@code{s-wchcnv.ads}) @@ -24109,7 +24150,7 @@ encoding method. It uses definitions in package @cite{System.Wch_Con}. @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{39b}@anchor{gnat_rm/the_gnat_library id149}@anchor{39c} +@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{39d}@anchor{gnat_rm/the_gnat_library id149}@anchor{39e} @section @cite{System.Wch_Con} (@code{s-wchcon.ads}) @@ -24121,7 +24162,7 @@ in ordinary strings. These definitions are used by the package @cite{System.Wch_Cnv}. @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top -@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}@anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{39d}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{39e} +@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}@anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{39f}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{3a0} @chapter Interfacing to Other Languages @@ -24139,7 +24180,7 @@ provided. @end menu @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages -@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{39f}@anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{3a0} +@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{3a1}@anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{3a2} @section Interfacing to C @@ -24277,7 +24318,7 @@ of the length corresponding to the @code{type'Size} value in Ada. @end itemize @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages -@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{3a1}@anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{3f} +@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{3a3}@anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{3f} @section Interfacing to C++ @@ -24334,7 +24375,7 @@ The @cite{External_Name} is the name of the C++ RTTI symbol. You can then cover a specific C++ exception in an exception handler. @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages -@anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{3a2}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{3a3} +@anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{3a4}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{3a5} @section Interfacing to COBOL @@ -24342,7 +24383,7 @@ Interfacing to COBOL is achieved as described in section B.4 of the Ada Reference Manual. @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages -@anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{3a4}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{3a5} +@anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{3a6}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{3a7} @section Interfacing to Fortran @@ -24352,7 +24393,7 @@ multi-dimensional array causes the array to be stored in column-major order as required for convenient interface to Fortran. @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages -@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{3a6}@anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{3a7} +@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{3a8}@anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{3a9} @section Interfacing to non-GNAT Ada code @@ -24376,7 +24417,7 @@ values or simple record types without variants, or simple array types with fixed bounds. @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top -@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}@anchor{gnat_rm/specialized_needs_annexes doc}@anchor{3a8}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{3a9} +@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}@anchor{gnat_rm/specialized_needs_annexes doc}@anchor{3aa}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{3ab} @chapter Specialized Needs Annexes @@ -24417,7 +24458,7 @@ in Ada 2005) is fully implemented. @end table @node Implementation of Specific Ada Features,Implementation of Ada 2012 Features,Specialized Needs Annexes,Top -@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}@anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{3aa}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{3ab} +@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}@anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{3ac}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{3ad} @chapter Implementation of Specific Ada Features @@ -24435,7 +24476,7 @@ facilities. @end menu @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features -@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{119}@anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{3ac} +@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{11a}@anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{3ae} @section Machine Code Insertions @@ -24603,7 +24644,7 @@ according to normal visibility rules. In particular if there is no qualification is required. @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features -@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{3ad}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{3ae} +@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{3af}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{3b0} @section GNAT Implementation of Tasking @@ -24618,7 +24659,7 @@ to compliance with the Real-Time Systems Annex. @end menu @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking -@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{3af}@anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{3b0} +@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{3b1}@anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{3b2} @subsection Mapping Ada Tasks onto the Underlying Kernel Threads @@ -24686,7 +24727,7 @@ support this functionality when the parent contains more than one task. .. index:: Forking a new process @node Ensuring Compliance with the Real-Time Annex,,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking -@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{3b1}@anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{3b2} +@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{3b3}@anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{3b4} @subsection Ensuring Compliance with the Real-Time Annex @@ -24735,7 +24776,7 @@ that were ready to execute in the priority queue where R has been placed at the end. @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features -@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{3b3}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{3b4} +@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{3b5}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{3b6} @section GNAT Implementation of Shared Passive Packages @@ -24834,7 +24875,7 @@ GNAT supports shared passive packages on all platforms except for OpenVMS. @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features -@anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{3b5}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{3b6} +@anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{3b7}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{3b8} @section Code Generation for Array Aggregates @@ -24865,7 +24906,7 @@ component values and static subtypes also lead to simpler code. @end menu @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{3b7}@anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{3b8} +@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{3b9}@anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{3ba} @subsection Static constant aggregates with static bounds @@ -24912,7 +24953,7 @@ Zero2: constant two_dim := (others => (others => 0)); @end example @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{3b9}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{3ba} +@anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{3bb}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{3bc} @subsection Constant aggregates with unconstrained nominal types @@ -24927,7 +24968,7 @@ Cr_Unc : constant One_Unc := (12,24,36); @end example @node Aggregates with static bounds,Aggregates with non-static bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{3bb}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{3bc} +@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{3bd}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{3be} @subsection Aggregates with static bounds @@ -24955,7 +24996,7 @@ end loop; @end example @node Aggregates with non-static bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-non-static-bounds}@anchor{3bd}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{3be} +@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-non-static-bounds}@anchor{3bf}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{3c0} @subsection Aggregates with non-static bounds @@ -24966,7 +25007,7 @@ have to be applied to sub-arrays individually, if they do not have statically compatible subtypes. @node Aggregates in assignment statements,,Aggregates with non-static bounds,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{3bf}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{3c0} +@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{3c1}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{3c2} @subsection Aggregates in assignment statements @@ -25008,7 +25049,7 @@ a temporary (created either by the front-end or the code generator) and then that temporary will be copied onto the target. @node The Size of Discriminated Records with Default Discriminants,Strict Conformance to the Ada Reference Manual,Code Generation for Array Aggregates,Implementation of Specific Ada Features -@anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{3c1}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{3c2} +@anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{3c3}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{3c4} @section The Size of Discriminated Records with Default Discriminants @@ -25088,7 +25129,7 @@ say) must be consistent, so it is imperative that the object, once created, remain invariant. @node Strict Conformance to the Ada Reference Manual,,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features -@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{3c3}@anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{3c4} +@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{3c5}@anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{3c6} @section Strict Conformance to the Ada Reference Manual @@ -25117,7 +25158,7 @@ behavior (although at the cost of a significant performance penalty), so infinite and NaN values are properly generated. @node Implementation of Ada 2012 Features,Obsolescent Features,Implementation of Specific Ada Features,Top -@anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{3c5}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{3c6} +@anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{3c7}@anchor{gnat_rm/implementation_of_ada_2012_features implementation-of-ada-2012-features}@anchor{14}@anchor{gnat_rm/implementation_of_ada_2012_features id1}@anchor{3c8} @chapter Implementation of Ada 2012 Features @@ -25132,8 +25173,10 @@ infinite and NaN values are properly generated. @geindex Ada_2012 configuration pragma This chapter contains a complete list of Ada 2012 features that have been -implemented as of GNAT version 6.4. Generally, these features are only -available if the @emph{-gnat12} (Ada 2012 features enabled) flag is set +implemented. +Generally, these features are only +available if the @emph{-gnat12} (Ada 2012 features enabled) option is set, +which is the default behavior, or if the configuration pragma @cite{Ada_2012} is used. However, new pragmas, attributes, and restrictions are @@ -27281,7 +27324,7 @@ RM References: H.04 (8/1) @end itemize @node Obsolescent Features,Compatibility and Porting Guide,Implementation of Ada 2012 Features,Top -@anchor{gnat_rm/obsolescent_features id1}@anchor{3c7}@anchor{gnat_rm/obsolescent_features doc}@anchor{3c8}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{15} +@anchor{gnat_rm/obsolescent_features id1}@anchor{3c9}@anchor{gnat_rm/obsolescent_features doc}@anchor{3ca}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{15} @chapter Obsolescent Features @@ -27300,7 +27343,7 @@ compatibility purposes. @end menu @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features -@anchor{gnat_rm/obsolescent_features id2}@anchor{3c9}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{3ca} +@anchor{gnat_rm/obsolescent_features id2}@anchor{3cb}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{3cc} @section pragma No_Run_Time @@ -27313,7 +27356,7 @@ preferred usage is to use an appropriately configured run-time that includes just those features that are to be made accessible. @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features -@anchor{gnat_rm/obsolescent_features id3}@anchor{3cb}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{3cc} +@anchor{gnat_rm/obsolescent_features id3}@anchor{3cd}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{3ce} @section pragma Ravenscar @@ -27322,7 +27365,7 @@ The pragma @cite{Ravenscar} has exactly the same effect as pragma is part of the new Ada 2005 standard. @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features -@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{3cd}@anchor{gnat_rm/obsolescent_features id4}@anchor{3ce} +@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{3cf}@anchor{gnat_rm/obsolescent_features id4}@anchor{3d0} @section pragma Restricted_Run_Time @@ -27332,7 +27375,7 @@ preferred since the Ada 2005 pragma @cite{Profile} is intended for this kind of implementation dependent addition. @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features -@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{3cf}@anchor{gnat_rm/obsolescent_features id5}@anchor{3d0} +@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{3d1}@anchor{gnat_rm/obsolescent_features id5}@anchor{3d2} @section pragma Task_Info @@ -27358,7 +27401,7 @@ in the spec of package System.Task_Info in the runtime library. @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features -@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{3d1}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{3d2} +@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{3d3}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{3d4} @section package System.Task_Info (@code{s-tasinf.ads}) @@ -27368,7 +27411,7 @@ to support the @cite{Task_Info} pragma. The predefined Ada package standard replacement for GNAT's @cite{Task_Info} functionality. @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top -@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{16}@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{3d3}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{3d4} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{16}@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{3d5}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{3d6} @chapter Compatibility and Porting Guide @@ -27390,7 +27433,7 @@ applications developed in other Ada environments. @end menu @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{3d5}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{3d6} +@anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{3d7}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{3d8} @section Writing Portable Fixed-Point Declarations @@ -27512,7 +27555,7 @@ If you follow this scheme you will be guaranteed that your fixed-point types will be portable. @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{3d7}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{3d8} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{3d9}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{3da} @section Compatibility with Ada 83 @@ -27540,7 +27583,7 @@ following subsections treat the most likely issues to be encountered. @end menu @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83 -@anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{3d9}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{3da} +@anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{3db}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{3dc} @subsection Legal Ada 83 programs that are illegal in Ada 95 @@ -27640,7 +27683,7 @@ the fix is usually simply to add the @cite{(<>)} to the generic declaration. @end itemize @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83 -@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{3db}@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{3dc} +@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{3dd}@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{3de} @subsection More deterministic semantics @@ -27668,7 +27711,7 @@ which open select branches are executed. @end itemize @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83 -@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{3dd}@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{3de} +@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{3df}@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{3e0} @subsection Changed semantics @@ -27710,7 +27753,7 @@ covers only the restricted range. @end itemize @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83 -@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{3df}@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{3e0} +@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{3e1}@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{3e2} @subsection Other language compatibility issues @@ -27743,7 +27786,7 @@ include @cite{pragma Interface} and the floating point type attributes @end itemize @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{3e1}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{3e2} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{3e3}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{3e4} @section Compatibility between Ada 95 and Ada 2005 @@ -27815,7 +27858,7 @@ can declare a function returning a value from an anonymous access type. @end itemize @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{3e3}@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{3e4} +@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{3e5}@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{3e6} @section Implementation-dependent characteristics @@ -27838,7 +27881,7 @@ transition from certain Ada 83 compilers. @end menu @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics -@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{3e5}@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{3e6} +@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{3e7}@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{3e8} @subsection Implementation-defined pragmas @@ -27860,7 +27903,7 @@ avoiding compiler rejection of units that contain such pragmas; they are not relevant in a GNAT context and hence are not otherwise implemented. @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics -@anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{3e7}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{3e8} +@anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{3e9}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{3ea} @subsection Implementation-defined attributes @@ -27874,7 +27917,7 @@ Ada 83, GNAT supplies the attributes @cite{Bit}, @cite{Machine_Size} and @cite{Type_Class}. @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics -@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{3e9}@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{3ea} +@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{3eb}@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{3ec} @subsection Libraries @@ -27903,7 +27946,7 @@ be preferable to retrofit the application using modular types. @end itemize @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics -@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{3eb}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{3ec} +@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{3ed}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{3ee} @subsection Elaboration order @@ -27939,7 +27982,7 @@ pragmas either globally (as an effect of the @emph{-gnatE} switch) or locally @end itemize @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics -@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{3ed}@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{3ee} +@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{3ef}@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{3f0} @subsection Target-specific aspects @@ -27952,10 +27995,10 @@ on the robustness of the original design. Moreover, Ada 95 (and thus Ada 2005 and Ada 2012) are sometimes incompatible with typical Ada 83 compiler practices regarding implicit packing, the meaning of the Size attribute, and the size of access values. -GNAT's approach to these issues is described in @ref{3ef,,Representation Clauses}. +GNAT's approach to these issues is described in @ref{3f1,,Representation Clauses}. @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{3f0}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{3f1} +@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{3f2}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{3f3} @section Compatibility with Other Ada Systems @@ -27998,7 +28041,7 @@ far beyond this minimal set, as described in the next section. @end itemize @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{3ef}@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{3f2} +@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{3f1}@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{3f4} @section Representation Clauses @@ -28091,7 +28134,7 @@ with thin pointers. @end itemize @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide -@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{3f3}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{3f4} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{3f5}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{3f6} @section Compatibility with HP Ada 83 @@ -28121,7 +28164,7 @@ extension of package System. @end itemize @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top -@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license doc}@anchor{3f5}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{3f6} +@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license doc}@anchor{3f7}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{3f8} @chapter GNU Free Documentation License diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 3099556174f..d82df18783f 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -21,7 +21,7 @@ @copying @quotation -GNAT User's Guide for Native Platforms , March 01, 2015 +GNAT User's Guide for Native Platforms , March 24, 2015 AdaCore @@ -13300,8 +13300,12 @@ before Junk10). @emph{Check that overriding subprograms are explicitly marked as such.} -The declaration of a primitive operation of a type extension that overrides -an inherited operation must carry an overriding indicator. +This applies to all subprograms of a derived type that override a primitive +operation of the type, for both tagged and untagged types. In particular, +the declaration of a primitive operation of a type extension that overrides +an inherited operation must carry an overriding indicator. Another case is +the declaration of a function that overrides a predefined operator (such +as an equality operator). @end table @geindex -gnatyp (gcc)