getting_started_with_gnat.rst, [...]: Update documentation.
authorArnaud Charlet <charlet@adacore.com>
Fri, 13 Jan 2017 11:23:42 +0000 (11:23 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 13 Jan 2017 11:23:42 +0000 (12:23 +0100)
* doc/gnat_ugn/getting_started_with_gnat.rst,
doc/gnat_ugn/inline_assembler.rst,
doc/gnat_ugn/building_executable_programs_with_gnat.rst,
doc/gnat_ugn/elaboration_order_handling_in_gnat.rst,
doc/gnat_ugn/about_this_guide.rst,
doc/gnat_ugn/platform_specific_information.rst,
doc/gnat_ugn/example_of_binder_output.rst,
doc/gnat_ugn/gnat_and_program_execution.rst,
doc/gnat_ugn/gnat_utility_programs.rst,
doc/gnat_ugn/the_gnat_compilation_model.rst,
doc/gnat_rm/implementation_defined_attributes.rst,
doc/gnat_rm/compatibility_and_porting_guide.rst,
doc/gnat_rm/standard_library_routines.rst,
doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
doc/gnat_rm/implementation_defined_pragmas.rst,
doc/gnat_rm/the_gnat_library.rst,
doc/gnat_rm/obsolescent_features.rst,
doc/gnat_rm/about_this_guide.rst,
doc/gnat_rm/the_implementation_of_standard_i_o.rst,
doc/gnat_rm/implementation_of_ada_2012_features.rst,
doc/gnat_rm/interfacing_to_other_languages.rst,
doc/gnat_rm/implementation_defined_aspects.rst,
doc/gnat_rm.rst: Update documentation.
* gnat_rm.texi, gnat_ugn.texi: Regenerated.

From-SVN: r244426

26 files changed:
gcc/ada/ChangeLog
gcc/ada/doc/gnat_rm.rst
gcc/ada/doc/gnat_rm/about_this_guide.rst
gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
gcc/ada/doc/gnat_rm/obsolescent_features.rst
gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
gcc/ada/doc/gnat_rm/standard_library_routines.rst
gcc/ada/doc/gnat_rm/the_gnat_library.rst
gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
gcc/ada/doc/gnat_ugn/about_this_guide.rst
gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
gcc/ada/doc/gnat_ugn/gnat_utility_programs.rst
gcc/ada/doc/gnat_ugn/inline_assembler.rst
gcc/ada/doc/gnat_ugn/platform_specific_information.rst
gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
gcc/ada/gnat_rm.texi
gcc/ada/gnat_ugn.texi

index 58188455e8b46e48778225fba5480282b37d7b36..1d6b5c95869ad1e7c70022daac4c3cd5c917d860 100644 (file)
@@ -1,3 +1,30 @@
+2017-01-13  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_ugn/getting_started_with_gnat.rst,
+       doc/gnat_ugn/inline_assembler.rst,
+       doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+       doc/gnat_ugn/elaboration_order_handling_in_gnat.rst,
+       doc/gnat_ugn/about_this_guide.rst,
+       doc/gnat_ugn/platform_specific_information.rst,
+       doc/gnat_ugn/example_of_binder_output.rst,
+       doc/gnat_ugn/gnat_and_program_execution.rst,
+       doc/gnat_ugn/gnat_utility_programs.rst,
+       doc/gnat_ugn/the_gnat_compilation_model.rst,
+       doc/gnat_rm/implementation_defined_attributes.rst,
+       doc/gnat_rm/compatibility_and_porting_guide.rst,
+       doc/gnat_rm/standard_library_routines.rst,
+       doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
+       doc/gnat_rm/implementation_defined_pragmas.rst,
+       doc/gnat_rm/the_gnat_library.rst,
+       doc/gnat_rm/obsolescent_features.rst,
+       doc/gnat_rm/about_this_guide.rst,
+       doc/gnat_rm/the_implementation_of_standard_i_o.rst,
+       doc/gnat_rm/implementation_of_ada_2012_features.rst,
+       doc/gnat_rm/interfacing_to_other_languages.rst,
+       doc/gnat_rm/implementation_defined_aspects.rst,
+       doc/gnat_rm.rst: Update documentation.
+       * gnat_rm.texi, gnat_ugn.texi: Regenerated.
+
 2017-01-13  Ed Schonberg  <schonberg@adacore.com>
 
        * einfo.ads: minor grammar fixes in comment of Normalized_Position_Max.
index a9ea40d679ed4ba68ae1da8ec3ee29a7c515a2eb..e18d1785d31315bffa842e7cddef9db0022a0cd9 100644 (file)
@@ -4,23 +4,23 @@ GNAT Reference Manual
 *GNAT, The GNU Ada Development Environment*
 
 .. only:: PRO
-   
+
    *GNAT Pro Edition*
-   
+
    | Version |version|
    | Date: |today|
 
 .. only:: GPL
-   
+
    *GNAT GPL Edition*
-   
+
    | Version |version|
    | Date: |today|
 
 .. only:: FSF
-   
+
    .. raw:: texinfo
-      
+
       @include gcc-common.texi
       GCC version @value{version-GCC}@*
 
index 11450c421b835527ad945c29a71f6dcdbf34cb7e..8071b4235d4b9e5121f0f9c679b35b65f5136e62 100644 (file)
@@ -114,7 +114,7 @@ This reference manual contains the following chapters:
 .. index:: Ada 2005 Language Reference Manual
 
 This reference manual assumes a basic familiarity with the Ada 95 language, as
-described in the 
+described in the
 :title:`International Standard ANSI/ISO/IEC-8652:1995`.
 It does not require knowledge of the new features introduced by Ada 2005 or
 Ada 2012.
@@ -148,10 +148,10 @@ in this guide:
   ::
 
     and then shown this way.
-    
+
 * Commands that are entered by the user are shown as preceded by a prompt string
   comprising the ``$`` character followed by a space.
-  
+
 Related Information
 ===================
 
index 5d699f585f2fac5c2139be0983710c251bade996..a859761585fa0c5edafd338926246a33e8ea5e35 100644 (file)
@@ -22,7 +22,7 @@ For example, if we write
 .. code-block:: ada
 
      type F1 is delta 1.0 range -128.0 .. +128.0;
-  
+
 then the implementation is allowed to choose -128.0 .. +127.0 if it
 likes, but is not required to do so.
 
@@ -45,7 +45,7 @@ representation. Let's take another example:
 .. code-block:: ada
 
       type F2 is delta 2.0**(-15) range -1.0 .. +1.0;
-  
+
 Looking at this declaration, it seems casually as though
 it should fit in 16 bits, but again that extra positive value
 +1.0 has the scaled integer equivalent of 2**15 which is one too
@@ -54,7 +54,7 @@ big for signed 16 bits. The implementation can treat this as:
 .. code-block:: ada
 
      type F2 is delta 2.0**(-15) range -1.0 .. +1.0-(2.0**(-15));
-  
+
 and the Ada language design team felt that this was too annoying
 to require. We don't need to debate this decision at this point,
 since it is well established (the rule about narrowing the ranges
@@ -77,14 +77,14 @@ approach: to narrow all the time, e.g. to treat
 .. code-block:: ada
 
      type F3 is delta 1.0 range -10.0 .. +23.0;
-  
+
 as though it had been written:
 
 
 .. code-block:: ada
 
       type F3 is delta 1.0 range -9.0 .. +22.0;
-  
+
 But although technically allowed, such a behavior would be hostile and silly,
 and no real compiler would do this. All real compilers will fall into one of
 the categories (a), (b) or (c) above.
@@ -101,14 +101,14 @@ E.g., for `F2` above, we will write:
      My_Last  : constant := +1.0 - My_Small;
 
      type F2 is delta My_Small range My_First .. My_Last;
-  
+
 and then add
 
 .. code-block:: ada
 
      for F2'Small use my_Small;
      for F2'Size  use 16;
-  
+
 In practice all compilers will do the same thing here and will give you
 what you want, so the above declarations are fully portable. If you really
 want to play language lawyer and guard against ludicrous behavior by the
@@ -118,7 +118,7 @@ compiler you could add
 
      Test1 : constant := 1 / Boolean'Pos (F2'First = My_First);
      Test2 : constant := 1 / Boolean'Pos (F2'Last  = My_Last);
-  
+
 One or other or both are allowed to be illegal if the compiler is
 behaving in a silly manner, but at least the silly compiler will not
 get away with silently messing with your (very clear) intentions.
@@ -176,7 +176,7 @@ Ada 95 and later versions of the standard:
   .. code-block:: ada
 
        for Char in Character range 'A' .. 'Z' loop ... end loop;
-    
+
 * *New reserved words*
 
   The identifiers `abstract`, `aliased`, `protected`,
@@ -368,7 +368,7 @@ for a complete description please see the
 
   Rule changes in this area have led to some incompatibilities; for example,
   constrained subtypes of some access types are not permitted in Ada 2005.
+
 * *Aggregates for limited types.*
 
   The allowance of aggregates for limited types in Ada 2005 raises the
@@ -517,7 +517,7 @@ Compatibility with Other Ada Systems
 ====================================
 
 If programs avoid the use of implementation dependent and
-implementation defined features, as documented in the 
+implementation defined features, as documented in the
 :title:`Ada Reference Manual`, there should be a high degree of portability between
 GNAT and other Ada systems.  The following are specific items which
 have proved troublesome in moving Ada 95 programs from GNAT to other Ada 95
@@ -618,7 +618,7 @@ the cases most likely to arise in existing Ada 83 code.
 
        type X is access all String;
        for X'Size use Standard'Address_Size;
-    
+
   which will cause the type X to be represented using a single pointer.
   When using this representation, the bounds are right behind the array.
   This representation is slightly less efficient, and does not allow quite
@@ -658,4 +658,3 @@ applicable to GNAT.
   that contains the additional definitions, and a special pragma,
   Extend_System allows this package to be treated transparently as an
   extension of package System.
-
index c567548556b675ef52cbf7464f791ea4a3a13b28..8d1cf7468bd2f2ea8cb728c443c934e990754199 100644 (file)
@@ -359,6 +359,13 @@ Aspect Lock_Free
 
 This boolean aspect is equivalent to :ref:`pragma Lock_Free<Pragma-Lock_Free>`.
 
+Aspect Max_Queue_Length
+=======================
+
+.. index:: Max_Queue_Length
+
+This aspect is equivalent to :ref:`pragma Max_Queue_Length<Pragma-Max_Queue_Length>`.
+
 Aspect No_Elaboration_Code_All
 ==============================
 .. index:: No_Elaboration_Code_All
@@ -447,6 +454,14 @@ Aspect Remote_Access_Type
 
 This aspect is equivalent to :ref:`pragma Remote_Access_Type<Pragma-Remote_Access_Type>`.
 
+Aspect Secondary_Stack_Size
+===========================
+
+.. index:: Secondary_Stack_Size
+
+This aspect is equivalent to :ref:`pragma Secondary_Stack_Size<Pragma-Secondary_Stack_Size>`.
+
+
 Aspect Scalar_Storage_Order
 ===========================
 .. index:: Scalar_Storage_Order
index 5c7f8012104d0c0c4e416675e2e3a55e1fbf45e6..c813afd59730dedcc03ad6a9a6c7a426e4db8e8f 100644 (file)
@@ -404,6 +404,21 @@ Attribute Fast_Math
 prefix) yields a static Boolean value that is True if pragma
 `Fast_Math` is active, and False otherwise.
 
+Attribute Finalization_Size
+===========================
+.. index:: Finalization_Size
+
+The prefix of attribute `Finalization_Size` must be an object or
+a non-class-wide type. This attribute returns the size of any hidden data
+reserved by the compiler to handle finalization-related actions. The type of
+the attribute is `universal_integer`.
+
+`Finalization_Size` yields a value of zero for a type with no controlled
+parts, an object whose type has no controlled parts, or an object of a
+class-wide type whose tag denotes a type with no controlled parts.
+
+Note that only heap-allocated objects contain finalization data.
+
 Attribute Fixed_Value
 =====================
 .. index:: Fixed_Value
index 78ee2f65d0438013aab3c31d8dca52d8621fd534..b243c8ed1c133fb0f8d778b2fa1c95b392579f41 100644 (file)
@@ -427,7 +427,7 @@ Syntax::
                         Refined_Post         |
                         Statement_Assertions
 
-  POLICY_IDENTIFIER ::= Check | Disable | Ignore
+  POLICY_IDENTIFIER ::= Check | Disable | Ignore | Suppressible
 
 
 This is a standard Ada 2012 pragma that is available as an
@@ -450,6 +450,8 @@ If the policy is `IGNORE`, then assertions are ignored, i.e.
 the corresponding pragma or aspect is deactivated.
 This pragma overrides the effect of the *-gnata* switch on the
 command line.
+If the policy is `SUPPRESSIBLE`, then assertions are enabled by default,
+however, if the *-gnatp* switch is specified all assertions are ignored.
 
 The implementation defined policy `DISABLE` is like
 `IGNORE` except that it completely disables semantic
@@ -2381,7 +2383,7 @@ Syntax:
   pragma Implementation_Defined (local_NAME);
 
 
-This pragma marks a previously declared entioty as implementation-defined.
+This pragma marks a previously declared entity as implementation-defined.
 For an overloaded entity, applies to the most recent homonym.
 
 
@@ -3561,6 +3563,19 @@ Syntax::
 This pragma is provided for compatibility with OpenVMS VAX Systems.  It has
 no effect in GNAT, other than being syntax checked.
 
+Pragma Max_Queue_Length
+=======================
+
+Syntax::
+
+   pragma Max_Entry_Queue (static_integer_EXPRESSION);
+
+
+This pragma is used to specify the maximum callers per entry queue for
+individual protected entries and entry families. It accepts a single
+positive integer as a parameter and must appear after the declaration
+of an entry.
+
 Pragma No_Body
 ==============
 
@@ -4530,6 +4545,43 @@ aspects, but is prepared to ignore the pragmas. The assertion
 policy that controls this pragma is `Post'Class`, not
 `Post_Class`.
 
+Pragma Rename_Pragma
+============================
+.. index:: Pragmas, synonyms
+
+Syntax:
+
+
+::
+
+  pragma Rename_Pragma (
+           [New_Name =>] IDENTIFIER,
+           [Renamed  =>] pragma_IDENTIFIER);
+
+This pragma provides a mechanism for supplying new names for existing
+pragmas. The `New_Name` identifier can subsequently be used as a synonym for
+the Renamed pragma. For example, suppose you have code that was originally
+developed on a compiler that supports Inline_Only as an implementation defined
+pragma. And suppose the semantics of pragma Inline_Only are identical to (or at
+least very similar to) the GNAT implementation defined pragma
+Inline_Always. You could globally replace Inline_Only with Inline_Always.
+
+However, to avoid that source modification, you could instead add a
+configuration pragma:
+
+.. code-block:: ada
+
+  pragma Rename_Pragma (
+           New_Name => Inline_Only,
+           Renamed  => Inline_Always);
+
+
+Then GNAT will treat "pragma Inline_Only ..." as if you had written
+"pragma Inline_Always ...".
+
+Pragma Inline_Only will not necessarily mean the same thing as the other Ada
+compiler; it's up to you to make sure the semantics are close enough.
+
 Pragma Pre
 ==========
 .. index:: Pre
@@ -4937,6 +4989,9 @@ is defined in the following sections.
   The ``Simple_Barriers`` restriction has been replaced by
   ``Pure_Barriers``.
 
+  The ``Max_Protected_Entries``, ``Max_Entry_Queue_Length``, and
+  ``No_Relative_Delay`` restrictions have been removed.
+
 * Pragma Profile (Restricted)
 
   This profile corresponds to the GNAT restricted run time. It
@@ -5470,6 +5525,41 @@ run with various special switches as follows:
   comprehensive messages identifying possible problems based on this
   information.
 
+.. _Pragma-Secondary_Stack_Size:
+
+Pragma Secondary_Stack_Size
+===========================
+
+Syntax:
+
+.. code-block:: ada
+
+  pragma Secondary_Stack_Size (integer_EXPRESSION);
+
+This pragma appears within the task definition of a single task declaration 
+or a task type declaration (like pragma `Storage_Size`) and applies to all 
+task objects of that type. The argument specifies the size of the secondary 
+stack to be used by these task objects, and must be of an integer type. The
+secondary stack is used to handle functions that return a variable-sized 
+result, for example a function returning an unconstrained String.
+
+Note this pragma only applies to targets using fixed secondary stacks, like
+VxWorks 653 and bare board targets, where a fixed block for the 
+secondary stack is allocated from the primary stack of the task. By default,
+these targets assign a percentage of the primary stack for the secondary stack,
+as defined by `System.Parameter.Sec_Stack_Percentage`. With this pragma, 
+an `integer_EXPRESSION` of bytes is assigned from the primary stack instead.
+
+For most targets, the pragma does not apply as the secondary stack grows on 
+demand: allocated as a chain of blocks in the heap. The default size of these 
+blocks can be modified via the `-D` binder option as described in 
+:title:`GNAT User's Guide`.
+
+Note that no check is made to see if the secondary stack can fit inside the 
+primary stack.
+
+Note the pragma cannot appear when the restriction `No_Secondary_Stack`
+is in effect.
 
 Pragma Share_Generic
 ====================
@@ -6853,7 +6943,7 @@ variables whose name contains one of the substrings
 `DISCARD, DUMMY, IGNORE, JUNK, UNUSED` in any casing. Such names
 are typically to be used in cases where such warnings are expected.
 Thus it is never necessary to use `pragma Unmodified` for such
-variables, though it is harmless to do so. 
+variables, though it is harmless to do so.
 
 Pragma Validity_Checks
 ======================
index 303b425c459913cdbc4b61facc3201471c9ce822..22ef54a959ba26a939b1c626d256e2ba606e3104 100644 (file)
@@ -114,48 +114,48 @@ Supported Aspect                    Source
 ================================== ===========
   `Ada_2005`                           -- GNAT
   `Ada_2012`                           -- GNAT
-  `Address`     
-  `Alignment`     
-  `Atomic`     
-  `Atomic_Components`     
-  `Bit_Order`     
-  `Component_Size`     
+  `Address`
+  `Alignment`
+  `Atomic`
+  `Atomic_Components`
+  `Bit_Order`
+  `Component_Size`
   `Contract_Cases`                     -- GNAT
-  `Discard_Names`     
-  `External_Tag`     
+  `Discard_Names`
+  `External_Tag`
   `Favor_Top_Level`                    -- GNAT
-  `Inline`     
+  `Inline`
   `Inline_Always`                      -- GNAT
   `Invariant`                          -- GNAT
-  `Machine_Radix`     
-  `No_Return`     
+  `Machine_Radix`
+  `No_Return`
   `Object_Size`                        -- GNAT
-  `Pack`     
+  `Pack`
   `Persistent_BSS`                     -- GNAT
-  `Post`     
-  `Pre`     
-  `Predicate`     
-  `Preelaborable_Initialization`     
+  `Post`
+  `Pre`
+  `Predicate`
+  `Preelaborable_Initialization`
   `Pure_Function`                      -- GNAT
   `Remote_Access_Type`                 -- GNAT
   `Shared`                             -- GNAT
-  `Size`     
-  `Storage_Pool`     
-  `Storage_Size`     
-  `Stream_Size`     
-  `Suppress`     
+  `Size`
+  `Storage_Pool`
+  `Storage_Size`
+  `Stream_Size`
+  `Suppress`
   `Suppress_Debug_Info`                -- GNAT
   `Test_Case`                          -- GNAT
   `Thread_Local_Storage`               -- GNAT
-  `Type_Invariant`     
-  `Unchecked_Union`     
+  `Type_Invariant`
+  `Unchecked_Union`
   `Universal_Aliasing`                 -- GNAT
   `Unmodified`                         -- GNAT
   `Unreferenced`                       -- GNAT
   `Unreferenced_Objects`               -- GNAT
-  `Unsuppress`     
+  `Unsuppress`
   `Value_Size`                         -- GNAT
-  `Volatile`     
+  `Volatile`
   `Volatile_Components`
   `Warnings`                           -- GNAT
 ================================== ===========
@@ -436,7 +436,7 @@ Supported Aspect                    Source
   ::
 
         (if expr then expr {elsif expr then expr} [else expr])
-    
+
   The parentheses can be omitted in contexts where parentheses are present
   anyway, such as subprogram arguments and pragma arguments. If the **else**
   clause is omitted, **else** *True* is assumed;
@@ -500,7 +500,7 @@ Supported Aspect                    Source
   .. code-block:: ada
 
       X := (case Y is when 1 => 2, when 2 => 3, when others => 31)
-    
+
   RM References:  4.05.07 (0)   4.05.08 (0)   4.09 (12)   4.09 (33)
 
 .. index:: AI-0104 (Ada 2012 feature)
index 32403e1990392d3d65b0f92cf68954d5010649bb..63fd5ffa345ca35e4f189f48e4ee294a46bf6fee 100644 (file)
@@ -15,9 +15,9 @@ Interfacing to C
 
 Interfacing to C with GNAT can use one of two approaches:
 
-* 
+*
   The types in the package `Interfaces.C` may be used.
-* 
+*
   Standard Ada types may be used directly.  This may be less portable to
   other compilers, but will work on all GNAT compilers, which guarantee
   correspondence between the C and Ada types.
@@ -44,7 +44,7 @@ Ada Type                 C Type
 Additionally, there are the following general correspondences between Ada
 and C types:
 
-* 
+*
   Ada enumeration types map to C enumeration types directly if pragma
   `Convention C` is specified, which causes them to have int
   length.  Without pragma `Convention C`, Ada enumeration types map to
@@ -53,17 +53,17 @@ and C types:
   This is the only case in which pragma `Convention C` affects the
   representation of an Ada type.
 
-* 
+*
   Ada access types map to C pointers, except for the case of pointers to
   unconstrained types in Ada, which have no direct C equivalent.
 
-* 
+*
   Ada arrays map directly to C arrays.
 
-* 
+*
   Ada records map directly to C structures.
 
-* 
+*
   Packed Ada records map to C structures where all members are bit fields
   of the length corresponding to the ``type'Size`` value in Ada.
 
@@ -116,7 +116,7 @@ It is also possible to import a C++ exception using the following syntax:
   pragma Import (Cpp,
     [Entity =>] LOCAL_NAME,
     [External_Name =>] static_string_EXPRESSION);
-  
+
 
 The `External_Name` is the name of the C++ RTTI symbol. You can then
 cover a specific C++ exception in an exception handler.
@@ -162,4 +162,3 @@ case in which it is possible to import foreign units of this type,
 provided that the data items passed are restricted to simple scalar
 values or simple record types without variants, or simple array
 types with fixed bounds.
-
index f5ea188a34dfa3b9fa3113b8b3f0d96d78a03aae..6c9b61ed70f218ee0606fce8565c80a673201770 100644 (file)
@@ -56,7 +56,7 @@ Syntax
 .. code-block:: ada
 
   pragma Task_Info (EXPRESSION);
-  
+
 This pragma appears within a task definition (like pragma
 `Priority`) and applies to the task in which it appears.  The
 argument must be of type `System.Task_Info.Task_Info_Type`.
index da49056d4f155cf9ee67d2aaeaafd2cc6c62c06c..78c489b2d1e9731e3c003b979553120faeea7a11 100644 (file)
@@ -584,7 +584,8 @@ No_Secondary_Stack
 [GNAT] This restriction ensures at compile time that the generated code
 does not contain any reference to the secondary stack.  The secondary
 stack is used to implement functions returning unconstrained objects
-(arrays or records) on some targets.
+(arrays or records) on some targets. Suppresses the allocation of 
+secondary stacks for tasks (excluding the environment task) at run time.
 
 No_Select_Statements
 --------------------
index 8b8d3c279873bb309c20c01867cb690bbe839648..6c9ac9fc4915e66c90ab195042576e056ddf1bf2 100644 (file)
@@ -317,7 +317,7 @@ the unit is not implemented.
   The following predefined instantiations of this package are provided:
 
   * ``Short_Float``
-  
+
     `Ada.Numerics.Short_Complex_Elementary_Functions`
 
   * ``Float``
@@ -706,4 +706,3 @@ the unit is not implemented.
 
 For packages in Interfaces and System, all the RM defined packages are
 available in GNAT, see the Ada 2012 RM for full details.
-
index dce95878122a3c087f60b0a5d65176835fc6b87b..57607fe8bd27a20de1d72a043f97a624de7ab19e 100644 (file)
@@ -1996,6 +1996,21 @@ This package provides a limited binding to the VxWorks API.
 In particular, it interfaces with the
 VxWorks hardware interrupt facilities.
 
+.. _`Interfaces.VxWorks.Int_Connection_(i-vxinco.ads)`:
+
+`Interfaces.VxWorks.Int_Connection` (:file:`i-vxinco.ads`)
+==========================================================
+
+.. index:: Interfaces.VxWorks.Int_Connection (i-vxinco.ads)
+
+.. index:: Interfacing to VxWorks
+
+.. index:: VxWorks, interfacing
+
+This package provides a way for users to replace the use of
+intConnect() with a custom routine for installing interrupt
+handlers.
+
 .. _`Interfaces.VxWorks.IO_(i-vxwoio.ads)`:
 
 `Interfaces.VxWorks.IO` (:file:`i-vxwoio.ads`)
index 3d39876c2ddea14d103ea3bc87c2b814fecb5e9b..e04fb9a33574b696ba6ffa99ea2faef8adfd6c9d 100644 (file)
@@ -39,37 +39,37 @@ Standard I/O Packages
 
 The Standard I/O packages described in Annex A for
 
-* 
+*
   Ada.Text_IO
-* 
+*
   Ada.Text_IO.Complex_IO
-* 
+*
   Ada.Text_IO.Text_Streams
-* 
+*
   Ada.Wide_Text_IO
-* 
+*
   Ada.Wide_Text_IO.Complex_IO
-* 
+*
   Ada.Wide_Text_IO.Text_Streams
-* 
+*
   Ada.Wide_Wide_Text_IO
-* 
+*
   Ada.Wide_Wide_Text_IO.Complex_IO
-* 
+*
   Ada.Wide_Wide_Text_IO.Text_Streams
-* 
+*
   Ada.Stream_IO
-* 
+*
   Ada.Sequential_IO
-* 
+*
   Ada.Direct_IO
 
 are implemented using the C
 library streams facility; where
 
-* 
+*
   All files are opened using `fopen`.
-* 
+*
   All input/output operations use `fread`/`fwrite`.
 
 There is no internal buffering of any kind at the Ada library level. The only
@@ -94,7 +94,7 @@ The format of a FORM string in GNAT is:
 ::
 
   "keyword=value,keyword=value,...,keyword=value"
-  
+
 
 where letters may be in upper or lower case, and there are no spaces
 between values.  The order of the entries is not important.  Currently
@@ -107,7 +107,7 @@ the following keywords defined.
   SHARED=[YES|NO]
   WCEM=[n|h|u|s|e|8|b]
   ENCODING=[UTF8|8BITS]
-  
+
 
 The use of these parameters is described later in this section. If an
 unrecognized keyword appears in a form string, it is silently ignored
@@ -173,7 +173,7 @@ arrays.  For example, the following will raise `Data_Error`:
    IO.Read (F, S);
    Put_Line (S);
 
-  
+
 
 On some Ada implementations, this will print `hell`, but the program is
 clearly incorrect, since there is only one element in the file, and that
@@ -196,21 +196,21 @@ special control characters:
 
   LF (line feed, 16#0A#) Line Mark
   FF (form feed, 16#0C#) Page Mark
-  
+
 
 A canonical Text_IO file is defined as one in which the following
 conditions are met:
 
-* 
+*
   The character `LF` is used only as a line mark, i.e., to mark the end
   of the line.
 
-* 
+*
   The character `FF` is used only as a page mark, i.e., to mark the
   end of a page and consequently can appear only immediately following a
   `LF` (line mark) character.
 
-* 
+*
   The file ends with either `LF` (line mark) or `LF`-`FF`
   (line mark, page mark).  In the former case, the page mark is implicitly
   assumed to be present.
@@ -229,16 +229,16 @@ Manual, and all the routines in Text_IO are fully implemented.
 A text file that does not meet the requirements for a canonical Text_IO
 file has one of the following:
 
-* 
+*
   The file contains `FF` characters not immediately following a
   `LF` character.
 
-* 
+*
   The file contains `LF` or `FF` characters written by
   `Put` or `Put_Line`, which are not logically considered to be
   line marks or page marks.
 
-* 
+*
   The file ends in a character other than `LF` or `FF`,
   i.e., there is no explicit line mark or page mark at the end of the file.
 
@@ -260,14 +260,14 @@ is being read.  No internal buffering occurs in Text_IO, and usually the
 physical position in the stream used to implement the file corresponds
 to this logical position defined by Text_IO.  There are two exceptions:
 
-* 
+*
   After a call to `End_Of_Page` that returns `True`, the stream
   is positioned past the `LF` (line mark) that precedes the page
   mark.  Text_IO maintains an internal flag so that subsequent read
   operations properly handle the logical position which is unchanged by
   the `End_Of_Page` call.
 
-* 
+*
   After a call to `End_Of_File` that returns `True`, if the
   Text_IO file was positioned before the line mark at the end of file
   before the call, then the logical position is unchanged, but the stream
@@ -298,19 +298,19 @@ marks.  Any `Ascii.FF` characters (the character normally used for a
 page mark) appearing in the file are considered to be data
 characters.  In particular:
 
-* 
+*
   `Get_Line` and `Skip_Line` do not test for a page mark
   following a line mark.  If a page mark appears, it will be treated as a
   data character.
 
-* 
+*
   This avoids the need to wait for an extra character to be typed or
   entered from the pipe to complete one of these operations.
 
-* 
+*
   `End_Of_Page` always returns `False`
 
-* 
+*
   `End_Of_File` will return `False` if there is a page mark at
   the end of the file.
 
@@ -440,7 +440,7 @@ specified using a FORM parameter:
 ::
 
   WCEM=`x`
-  
+
 
 as part of the FORM string (WCEM = wide character encoding method),
 where `x` is one of the following characters
@@ -477,7 +477,7 @@ being brackets encoding if no coding method was specified with -gnatW).
 ::
 
     ESC a b c d
-    
+
 ..
 
   where `a`, `b`, `c`, `d` are the four hexadecimal
@@ -524,7 +524,7 @@ being brackets encoding if no coding method was specified with -gnatW).
     16#0000#-16#007f#: 2#0xxxxxxx#
     16#0080#-16#07ff#: 2#110xxxxx# 2#10xxxxxx#
     16#0800#-16#ffff#: 2#1110xxxx# 2#10xxxxxx# 2#10xxxxxx#
-    
+
 ..
 
   where the `xxx` bits correspond to the left-padded bits of the
@@ -545,7 +545,7 @@ being brackets encoding if no coding method was specified with -gnatW).
 ::
 
     [ " a b c d " ]
-    
+
 ..
 
   where `a`, `b`, `c`, `d` are the four hexadecimal
@@ -590,7 +590,7 @@ being brackets encoding if no coding method was specified with -gnatW).
 ::
 
        Start of output ["5B"]first run]
-    
+
 ..
 
   In practice brackets encoding is reasonably useful for normal Put_Line use
@@ -623,7 +623,7 @@ normal lower ASCII set (i.e., a character in the range:
 .. code-block:: ada
 
   Wide_Character'Val (16#0080#) .. Wide_Character'Val (16#FFFF#)
-  
+
 
 then although the logical position of the file pointer is unchanged by
 the `Look_Ahead` call, the stream is physically positioned past the
@@ -658,7 +658,7 @@ specified using a FORM parameter:
 ::
 
   WCEM=`x`
-  
+
 
 as part of the FORM string (WCEM = wide character encoding method),
 where `x` is one of the following characters
@@ -701,7 +701,7 @@ being brackets encoding if no coding method was specified with -gnatW).
     16#000080#-16#0007ff#: 2#110xxxxx# 2#10xxxxxx#
     16#000800#-16#00ffff#: 2#1110xxxx# 2#10xxxxxx# 2#10xxxxxx#
     16#010000#-16#10ffff#: 2#11110xxx# 2#10xxxxxx# 2#10xxxxxx# 2#10xxxxxx#
-    
+
 ..
 
   where the `xxx` bits correspond to the left-padded bits of the
@@ -719,7 +719,7 @@ being brackets encoding if no coding method was specified with -gnatW).
 ::
 
     [ " a b c d " ]
-    
+
 ..
 
   and by the following ten character sequence if not
@@ -728,7 +728,7 @@ being brackets encoding if no coding method was specified with -gnatW).
 ::
 
     [ " a b c d e f " ]
-    
+
 ..
 
   where `a`, `b`, `c`, `d`, `e`, and `f`
@@ -767,7 +767,7 @@ normal lower ASCII set (i.e., a character in the range:
 .. code-block:: ada
 
   Wide_Wide_Character'Val (16#0080#) .. Wide_Wide_Character'Val (16#10FFFF#)
-  
+
 
 then although the logical position of the file pointer is unchanged by
 the `Look_Ahead` call, the stream is physically positioned past the
@@ -798,11 +798,11 @@ written to the file as described in the Ada Reference Manual.  The type
 `Stream_Element` is simply a byte.  There are two ways to read or
 write a stream file.
 
-* 
+*
   The operations `Read` and `Write` directly read or write a
   sequence of stream elements with no control information.
 
-* 
+*
   The stream attributes applied to a stream file transfer data in the
   manner described for stream attributes.
 
@@ -816,7 +816,7 @@ passed to Text_IO.Create and Text_IO.Open. ``Text_Translation=xxx``
 has no effect on Unix systems. Possible values are:
 
 
-* 
+*
   ``Yes`` or ``Text`` is the default, which means to
   translate LF to/from CR/LF on Windows systems.
 
@@ -825,15 +825,15 @@ has no effect on Unix systems. Possible values are:
   may be used to create Unix-style files on
   Windows.
 
-* 
+*
   ``wtext`` translation enabled in Unicode mode.
   (corresponds to _O_WTEXT).
 
-* 
+*
   ``u8text`` translation enabled in Unicode UTF-8 mode.
   (corresponds to O_U8TEXT).
 
-* 
+*
   ``u16text`` translation enabled in Unicode UTF-16
   mode. (corresponds to_O_U16TEXT).
 
@@ -851,21 +851,21 @@ To provide a full range of functionality, while at the same time
 minimizing the problems of portability caused by this implementation
 dependence, GNAT handles file sharing as follows:
 
-* 
+*
   In the absence of a ``shared=xxx`` form parameter, an attempt
   to open two or more files with the same full name is considered an error
   and is not supported.  The exception `Use_Error` will be
   raised.  Note that a file that is not explicitly closed by the program
   remains open until the program terminates.
 
-* 
+*
   If the form parameter ``shared=no`` appears in the form string, the
   file can be opened or created with its own separate stream identifier,
   regardless of whether other files sharing the same external file are
   opened.  The exact effect depends on how the C stream routines handle
   multiple accesses to the same external files using separate streams.
 
-* 
+*
   If the form parameter ``shared=yes`` appears in the form string for
   each of two or more files opened using the same full name, the same
   stream is shared between these files, and the semantics are as described
@@ -905,11 +905,11 @@ Filenames encoding
 An encoding form parameter can be used to specify the filename
 encoding ``encoding=xxx``.
 
-* 
+*
   If the form parameter ``encoding=utf8`` appears in the form string, the
   filename must be encoded in UTF-8.
 
-* 
+*
   If the form parameter ``encoding=8bits`` appears in the form
   string, the filename must be a standard 8bits string.
 
@@ -979,7 +979,7 @@ using the mode shown in the following table:
 +----------------------------+---------------+------------------+
 | Inout_File                 |   "r+"        |    "w+"          |
 +----------------------------+---------------+------------------+
-  
+
 
 If text file translation is required, then either ``b`` or ``t``
 is added to the mode, depending on the setting of Text.  Text file
@@ -1153,7 +1153,7 @@ access to the C library functions for operations on C streams:
     -- Maximum length of an allowable full path name on the
     -- system, including a terminating NUL character.
   end Interfaces.C_Streams;
-  
+
 
 .. _Interfacing_to_C_Streams:
 
@@ -1231,7 +1231,7 @@ operations.
          C_Stream : in Interfaces.C_Streams.FILEs;
          Form : in String := "");
    end Ada.Stream_IO.C_Streams;
-  
+
 
 In each of these six packages, the `C_Stream` function obtains the
 `FILE` pointer from a currently opened Ada file.  It is then
@@ -1249,4 +1249,3 @@ The `Open` procedures in these packages open a file giving an
 existing C Stream instead of a file name.  Typically this stream is
 imported from a C program, allowing an Ada file to operate on an
 existing C file.
-
index 308a1e6ee58cf7058025623b97b65254010550fe..079b20ba31dbef91a9c281d47c8bc1c97b430888 100644 (file)
@@ -45,11 +45,11 @@ This guide contains the following chapters:
   with GNAT
 
 Appendices cover several additional topics:
-  
+
 * :ref:`Platform_Specific_Information` describes the different run-time
   library implementations and also presents information on how to use
   GNAT on several specific platforms
-  
+
 * :ref:`Example_of_Binder_Output_File` shows the source code for the binder
   output file for a sample program.
 
@@ -136,7 +136,7 @@ the new document structure.
 
 * :ref:`GNAT_Utility_Programs` is a new chapter consolidating the information about several
   GNAT tools:
-  
+
   .. only:: PRO or GPL
 
     - :ref:`The_File_Cleanup_Utility_gnatclean`
@@ -149,7 +149,7 @@ the new document structure.
     - :ref:`The_GNAT_Pretty-Printer_gnatpp`
     - :ref:`The_Body_Stub_Generator_gnatstub`
     - :ref:`The_Unit_Test_Generator_gnattest`
-  
+
   .. only:: FSF
 
     - :ref:`The_File_Cleanup_Utility_gnatclean`
@@ -206,7 +206,7 @@ in this guide:
   ::
 
     and then shown this way.
-    
+
 * Commands that are entered by the user are shown as preceded by a prompt string
   comprising the ``$`` character followed by a space.
 
@@ -214,4 +214,3 @@ in this guide:
   as the directory separator; e.g., :file:`parent-dir/subdir/myfile.adb`.
   If you are using GNAT on a Windows platform, please note that
   the '\\' character should be used instead.
-
index d981f4670574cfe8fad5bab821337b85dc0a8f60..5b8d930bf734797e722c8f9214a33b490cabe9b9 100644 (file)
@@ -28,14 +28,14 @@ how to make use of the general GNU make mechanism
 in a GNAT context (see :ref:`Using_the_GNU_make_Utility`).
 
 .. only:: PRO or GPL
-  
+
    For building large systems with components possibly written
    in different languages (such as Ada, C, C++ and Fortran)
    and organized into subsystems and libraries, the GPRbuild
    tool can be used. This tool, and the Project Manager
    facility that it is based upon, is described in
    *GPRbuild and GPR Companion Tools User's Guide*.
-         
+
 
 .. _The_GNAT_Make_Program_gnatmake:
 
@@ -527,7 +527,7 @@ You may specify any of the following switches to *gnatmake*:
 :samp:`-P{project}`
   Use project file `project`. Only one such switch can be used.
 
-.. -- Comment:  
+.. -- Comment:
   :ref:`gnatmake_and_Project_Files`.
 
 
@@ -1445,9 +1445,7 @@ Alphabetical List of All Switches
   *-gnatc* as a builder switch (before *-cargs* or in package
   Builder of the project file) then *gnatmake* will not fail because
   it will not look for the object files after compilation, and it will not try
-  to build and link. This switch may not be given if a previous `-gnatR`
-  switch has been given, since `-gnatR` requires that the code generator
-  be called to complete determination of representation information.
+  to build and link.
 
 
 .. index:: -gnatC  (gcc)
@@ -1476,7 +1474,7 @@ Alphabetical List of All Switches
 
 :samp:`-gnatD`
   Create expanded source files for source level debugging. This switch
-  also suppress generation of cross-reference information
+  also suppresses generation of cross-reference information
   (see *-gnatx*). Note that this switch is not allowed if a previous
   -gnatR switch has been given, since these two switches are not compatible.
 
@@ -1917,8 +1915,8 @@ Alphabetical List of All Switches
 .. index:: -gnatn  (gcc)
 
 :samp:`-gnatn[12]`
-  Activate inlining for subprograms for which pragma `Inline` is
-  specified. This inlining is performed by the GCC back-end. An optional
+  Activate inlining across modules for subprograms for which pragma `Inline`
+  is specified. This inlining is performed by the GCC back-end. An optional
   digit sets the inlining level: 1 for moderate inlining across modules
   or 2 for full inlining across modules. If no inlining level is specified,
   the compiler will pick it based on the optimization level.
@@ -5417,16 +5415,16 @@ Subprogram Inlining Control
 .. index:: -gnatn  (gcc)
 
 :samp:`-gnatn[12]`
-  The `n` here is intended to suggest the first syllable of the
-  word 'inline'.
-  GNAT recognizes and processes `Inline` pragmas. However, for the
-  inlining to actually occur, optimization must be enabled and, in order
-  to enable inlining of subprograms specified by pragma `Inline`,
+  The `n` here is intended to suggest the first syllable of the word 'inline'.
+  GNAT recognizes and processes `Inline` pragmas. However, for inlining to
+  actually occur, optimization must be enabled and, by default, inlining of
+  subprograms across modules is not performed. If you want to additionally
+  enable inlining of subprograms specified by pragma `Inline` across modules,
   you must also specify this switch.
-  In the absence of this switch, GNAT does not attempt
-  inlining and does not need to access the bodies of
-  subprograms for which `pragma Inline` is specified if they are not
-  in the current unit.
+
+  In the absence of this switch, GNAT does not attempt inlining across modules
+  and does not access the bodies of subprograms for which `pragma Inline` is
+  specified if they are not in the current unit.
 
   You can optionally specify the inlining level: 1 for moderate inlining across
   modules, which is a good compromise between compilation times and performances
@@ -5659,7 +5657,7 @@ Debugging Control
   you to do source level debugging using the generated code which is
   sometimes useful for complex code, for example to find out exactly
   which part of a complex construction raised an exception. This switch
-  also suppress generation of cross-reference information (see
+  also suppresses generation of cross-reference information (see
   *-gnatx*) since otherwise the cross-reference information
   would refer to the :file:`.dg` file, which would cause
   confusion since this is not the original source file.
@@ -5727,12 +5725,6 @@ Debugging Control
   this case, the component clause uses an obvious extension of permitted
   Ada syntax, for example `at 0 range 0 .. -1`.
 
-  Representation information requires that code be generated (since it is the
-  code generator that lays out complex data structures). If an attempt is made
-  to output representation information when no code is generated, for example
-  when a subunit is compiled on its own, then no information can be generated
-  and the compiler outputs a message to this effect.
-
 
 .. index:: -gnatS  (gcc)
 
@@ -5901,6 +5893,21 @@ there is no point in using *-m* switches to improve performance
 unless you actually see a performance improvement.
 
 
+.. _Linker_Switches:
+
+Linker Switches
+===============
+
+Linker switches can be specified after :samp:`-largs` builder switch.
+
+.. index:: -fuse-ld=name
+
+:samp:`-fuse-ld={name}`
+  Linker to be used. The default is ``bfd`` for :file:`ld.bfd`,
+  the alternative being ``gold`` for :file:`ld.gold`. The later is
+  a more recent and faster linker, but only available on GNU/Linux
+  platforms.
+
 .. _Binding_with_gnatbind:
 
 Binding with `gnatbind`
@@ -6113,10 +6120,12 @@ be presented in subsequent sections.
   blocks (whose size is the minimum of the default secondary stack size value,
   and the actual size needed for the current allocation request).
 
-  For certain targets, notably VxWorks 653,
-  the secondary stack is allocated by carving off a fixed ratio chunk of the
-  primary task stack. The -D option is used to define the
-  size of the environment task's secondary stack.
+  For certain targets, notably VxWorks 653 and bare board targets,
+  the secondary stack is allocated by carving off a chunk of the primary task 
+  stack. By default this is a fixed percentage of the primary task stack as
+  defined by System.Parameter.Sec_Stack_Percentage. This can be overridden per 
+  task using the Secondary_Stack_Size pragma/aspect. The -D option is used to
+  define the size of the environment task's secondary stack.
 
 
 .. index:: -e  (gnatbind)
@@ -6151,6 +6160,11 @@ be presented in subsequent sections.
   Currently the same as `-Ea`.
 
 
+.. index:: -f  (gnatbind)
+
+:samp:`-f{elab-order}`
+  Force elaboration order.
+
 .. index:: -F  (gnatbind)
 
 :samp:`-F`
@@ -6600,6 +6614,47 @@ The following switches provide additional control over the elaboration
 order. For full details see :ref:`Elaboration_Order_Handling_in_GNAT`.
 
 
+.. index:: -f  (gnatbind)
+
+:samp:`-f{elab-order}`
+  Force elaboration order.
+
+  `elab-order` should be the name of a "forced elaboration order file", that
+  is, a text file containing library item names, one per line. A name of the
+  form "some.unit%s" or "some.unit (spec)" denotes the spec of Some.Unit. A
+  name of the form "some.unit%b" or "some.unit (body)" denotes the body of
+  Some.Unit. Each pair of lines is taken to mean that there is an elaboration
+  dependence of the second line on the first. For example, if the file
+  contains:
+
+  .. code-block:: ada
+
+      this (spec)
+      this (body)
+      that (spec)
+      that (body)
+
+  then the spec of This will be elaborated before the body of This, and the
+  body of This will be elaborated before the spec of That, and the spec of That
+  will be elaborated before the body of That. The first and last of these three
+  dependences are already required by Ada rules, so this file is really just
+  forcing the body of This to be elaborated before the spec of That.
+
+  The given order must be consistent with Ada rules, or else `gnatbind` will
+  give elaboration cycle errors. For example, if you say x (body) should be
+  elaborated before x (spec), there will be a cycle, because Ada rules require
+  x (spec) to be elaborated before x (body); you can't have the spec and body
+  both elaborated before each other.
+
+  If you later add "with That;" to the body of This, there will be a cycle, in
+  which case you should erase either "this (body)" or "that (spec)" from the
+  above forced elaboration order file.
+
+  Blank lines and Ada-style comments are ignored. Unit names that do not exist
+  in the program are ignored. Units in the GNAT predefined library are also
+  ignored.
+
+
   .. index:: -p  (gnatbind)
 
 :samp:`-p`
index 4f0c3752dbf4a2c9a0eb8db3b0826e18fe85eef2..1e96e311116a439366ad8e00af56f26f23657471 100644 (file)
@@ -1661,8 +1661,8 @@ and
 ::
 
     Init_Constants spec
-    Init_Constants body
     Constants spec
+    Init_Constants body
     Calc spec
     Main body
 
@@ -1703,7 +1703,7 @@ compilers can choose different orders.
 However, GNAT does attempt to diagnose the common situation where there
 are uninitialized variables in the visible part of a package spec, and the
 corresponding package body has an elaboration block that directly or
-indirectly initialized one or more of these variables. This is the situation
+indirectly initializes one or more of these variables. This is the situation
 in which a pragma Elaborate_Body is usually desirable, and GNAT will generate
 a warning that suggests this addition if it detects this situation.
 
index b2c34c0b82052044adb8aab728c96f908b569cc6..4e78164a0c2c36399cec75106ce56882a1ccd953 100644 (file)
@@ -727,7 +727,7 @@ Comments have been added for clarification purposes.
   -- END Object file/option list
 
   end ada_main;
-  
+
 
 The Ada code in the above example is exactly what is generated by the
 binder. We have added comments to more clearly indicate the function
@@ -743,8 +743,7 @@ you can place a breakpoint on the call:
   .. code-block:: ada
 
      Ada.Text_Io'Elab_Body;
-  
+
 and trace the elaboration routine for this package to find out where
 the problem might be (more usually of course you would be debugging
 elaboration code in your own application).
-
index fcfb07875e493866b5df2c215f8698835f8ff81b..f34b701ac09d94da47accde60afb6e79c3f9a7e6 100644 (file)
@@ -75,7 +75,7 @@ as the command prompt in the examples in this document):
 .. code-block:: sh
 
   $ gcc -c hello.adb
-  
+
 
 *gcc* is the command used to run the compiler. This compiler is
 capable of compiling programs in several languages, including Ada and
@@ -273,4 +273,3 @@ Ada make tools, *gnatmake* does not rely on the dependencies that were
 found by the compiler on a previous compilation, which may possibly
 be wrong when sources change. *gnatmake* determines the exact set of
 dependencies from scratch each time it is run.
-
index ddce9218b363549c01899e254bc732cf7bc2fb10..b090236b48c09abb1b2cdd929a6b1774f8bf31b1 100644 (file)
@@ -1740,10 +1740,9 @@ following conditions are met:
   .. index:: Inline
 
 * Any one of the following applies: `pragma Inline` is applied to the
-  subprogram and the *-gnatn* switch is specified; the
-  subprogram is local to the unit and called once from within it; the
-  subprogram is small and optimization level *-O2* is specified;
-  optimization level *-O3* is specified.
+  subprogram; the subprogram is local to the unit and called once from
+  within it; the subprogram is small and optimization level *-O2* is
+  specified; optimization level *-O3* is specified.
 
 Calls to subprograms in |withed| units are normally not inlined.
 To achieve actual inlining (that is, replacement of the call by the code
@@ -1755,8 +1754,6 @@ in the body of the subprogram), the following conditions must all be true:
   and not contain something that *gcc* cannot support in inlined
   subprograms.
 
-* The call appears in a body (not in a package spec).
-
 * There is a `pragma Inline` for the subprogram.
 
 * The *-gnatn* switch is used on the command line.
@@ -1806,7 +1803,7 @@ additional dependencies.
 .. index:: -fno-inline (gcc)
 
 Note: The *-fno-inline* switch overrides all other conditions and ensures that
-no inlining occurs, unless requested with pragma Inline_Always for gcc
+no inlining occurs, unless requested with pragma Inline_Always for *gcc*
 back-ends. The extra dependences resulting from *-gnatn* will still be active,
 even if this switch is used to suppress the resulting inlining actions.
 
index 1d22d17e93518c9acb5184400cddfd9743ad85fe..062d6b90cdc3188670533809ea9013179c77af91 100644 (file)
@@ -632,11 +632,7 @@ The following switches are available for *gnatxref*:
 .. index:: -pFILE (gnatxref)
 
 :samp:`p{FILE}`
-  Specify a project file to use (see the *GNAT_Project_Manager*
-  chapter in the *GPRbuild User's Guide*).
-  If you need to use the :file:`.gpr`
-  project files, you should use gnatxref through the GNAT driver
-  (*gnat xref -Pproject*).
+  Specify a project file to use.
 
   By default, `gnatxref` and `gnatfind` will try to locate a
   project file in the current directory.
@@ -836,8 +832,7 @@ The following switches are available:
 .. index:: -pFILE (gnatfind)
 
 :samp:`p{FILE}`
-  Specify a project file (see the *GNAT_Project_Manager* chapter in the
-  *GPRbuild User's Guide*).
+  Specify a project file.
   By default, `gnatxref` and `gnatfind` will try to locate a
   project file in the current directory.
 
@@ -3060,7 +3055,7 @@ Alternatively, you may run the script using the following command line:
    .. index:: -nt (gnatpp)
 
 
-   :samp:`-neD`
+   :samp:`-ntD`
      Names introduced by type and subtype declarations are always
      cased as they appear in the declaration in the source file.
      Overrides -n casing setting.
@@ -4206,6 +4201,14 @@ Alternatively, you may run the script using the following command line:
   a skeleton for each visible subprogram in the packages under consideration when
   they do not exist already.
 
+  *gnattest* is a project-aware tool.
+  (See :ref:`Using_Project_Files_with_GNAT_Tools` for a description of
+  the project-related switches but note that *gnattest* does not support
+  the :samp:`-U`, :samp:`-eL`, :samp:`--subdirs={dir}`, or
+  :samp:`--no_objects_dir` switches.)
+  The project file package that can specify
+  *gnattest* switches is named ``gnattest``.
+
   The user can choose to generate a single test driver
   that will run all individual tests, or separate test drivers for each test. The
   second option allows much greater flexibility in test execution environment,
@@ -4354,12 +4357,6 @@ Alternatively, you may run the script using the following command line:
     Recursively considers all sources from all projects.
 
 
-    .. index:: -X (gnattest)
-
-  :samp:`-X{name}={value}`
-    Indicate that external variable `name` has the value `value`.
-
-
     .. index:: --RTS (gnattest)
 
   :samp:`--RTS={rts-path}`
@@ -5050,7 +5047,7 @@ Alternatively, you may run the script using the following command line:
    with a number of GNAT tools.
    For a comprehensive description of project files and the overall
    GNAT Project Manager facility, please refer to the
-   *GNAT Project Manager* chapter in the 
+   *GNAT Project Manager* chapter in the
    *GPRbuild and GPR Companion Tools User's Guide*.
 
    .. index:: Project-aware tool
@@ -5072,7 +5069,7 @@ Alternatively, you may run the script using the following command line:
 
    :samp:`-U`
       If a project file is supplied, say for project ``proj``,
-      but no sources are specified for ``proj`` (either by a 
+      but no sources are specified for ``proj`` (either by a
       project attribute or through a tool option that provides a list
       of the files to be used), process all the source files
       from projects imported either directly or indirectly by ``proj``.
@@ -5108,7 +5105,7 @@ Alternatively, you may run the script using the following command line:
    defined by that project, either implicitly by residing in the project
    source directories, or explicitly through any of the source-related
    attributes).
-  
+
    .. _Tool-specific_packages_in_project files:
 
    Tool-specific packages in project files
@@ -5121,4 +5118,4 @@ Alternatively, you may run the script using the following command line:
    A tool-specific package in a project file may define the ``Default_Switches``
    attribute indexed by "ada" (as language name). The value of this attribute
    is a list of switches that will be supplied at tool invocation.
-   Project-specific switches cannot be specified through this attribute. 
+   Project-specific switches cannot be specified through this attribute.
index d79b70b08147048a944047f8dc9123f3e8d2be33..f2c0e7213826f4b5f6ad6a4bbf4d0e365310f249 100644 (file)
@@ -119,7 +119,7 @@ from which it generates a sequence of assembly language instructions.
 
 The examples in this chapter will illustrate several of the forms
 for invoking `Asm`; a complete specification of the syntax
-is found in the `Machine_Code_Insertions` section of the 
+is found in the `Machine_Code_Insertions` section of the
 :title:`GNAT Reference Manual`.
 
 Under the standard GNAT conventions, the `Nothing` procedure
@@ -129,7 +129,7 @@ You can build the executable in the usual way:
   ::
 
      $ gnatmake nothing
-  
+
 However, the interesting aspect of this example is not its run-time behavior
 but rather the generated assembly code.
 To see this output, invoke the compiler as follows:
@@ -137,7 +137,7 @@ To see this output, invoke the compiler as follows:
   ::
 
      $  gcc -c -S -fomit-frame-pointer -gnatp nothing.adb
-  
+
 where the options are:
 
 * :samp:`-c`
@@ -191,7 +191,7 @@ Assembling the file using the command
 
   ::
 
-     $ as nothing.s  
+     $ as nothing.s
 
 will give you error messages whose lines correspond to the assembler
 input file, so you can easily find and correct any mistakes you made.
@@ -224,7 +224,7 @@ statements.
              Outputs => Unsigned_32'Asm_Output ("=g", Flags));
         Put_Line ("Flags register:" & Flags'Img);
      end Get_Flags;
-  
+
 In order to have a nicely aligned assembly listing, we have separated
 multiple assembler statements in the Asm template string with linefeed
 (ASCII.LF) and horizontal tab (ASCII.HT) characters.
@@ -243,7 +243,7 @@ It would have been legal to write the Asm invocation as:
   .. code-block:: ada
 
      Asm ("pushfl popl %%eax movl %%eax, %0")
-  
+
 but in the generated assembler file, this would come out as:
 
   ::
@@ -251,7 +251,7 @@ but in the generated assembler file, this would come out as:
      #APP
         pushfl popl %eax movl %eax, -40(%ebp)
      #NO_APP
-  
+
 which is not so convenient for the human reader.
 
 We use Ada comments
@@ -273,7 +273,7 @@ the third statement in the Asm template string:
   ::
 
      movl %%eax, %0
-  
+
 The intent is to store the contents of the eax register in a variable that can
 be accessed in Ada.  Simply writing `movl %%eax, Flags` would not
 necessarily work, since the compiler might optimize by using a register
@@ -288,21 +288,21 @@ parameter to `Asm`:
   .. code-block:: ada
 
      Outputs => Unsigned_32'Asm_Output ("=g", Flags));
-  
+
 The output is defined by the `Asm_Output` attribute of the target type;
 the general format is
 
   .. code-block:: ada
 
      Type'Asm_Output (constraint_string, variable_name)
-  
+
 The constraint string directs the compiler how
 to store/access the associated variable.  In the example
 
   .. code-block:: ada
 
      Unsigned_32'Asm_Output ("=m", Flags);
-  
+
 the `"m"` (memory) constraint tells the compiler that the variable
 `Flags` should be stored in a memory variable, thus preventing
 the optimizer from keeping it in a register.  In contrast,
@@ -310,7 +310,7 @@ the optimizer from keeping it in a register.  In contrast,
   .. code-block:: ada
 
      Unsigned_32'Asm_Output ("=r", Flags);
-  
+
 uses the `"r"` (register) constraint, telling the compiler to
 store the variable in a register.
 
@@ -352,7 +352,7 @@ integer.  Thus in
           "popl %%eax"      & LF & HT & -- load eax with flags
           "movl %%eax, %0",             -- store flags in variable
           Outputs => Unsigned_32'Asm_Output ("=g", Flags));
-    
+
 
 `%0` will be replaced in the expanded code by the appropriate operand,
 whatever
@@ -375,7 +375,7 @@ For example:
           Outputs => (Unsigned_32'Asm_Output ("=g", Var_A),   --  %0 = Var_A
                       Unsigned_32'Asm_Output ("=g", Var_B),   --  %1 = Var_B
                       Unsigned_32'Asm_Output ("=g", Var_C))); --  %2 = Var_C
-  
+
 where `Var_A`, `Var_B`, and `Var_C` are variables
 in the Ada program.
 
@@ -398,7 +398,7 @@ variable, instead of including the store instruction explicitly in the
              Outputs => Unsigned_32'Asm_Output ("=a", Flags));
         Put_Line ("Flags register:" & Flags'Img);
      end Get_Flags_2;
-  
+
 The `"a"` constraint tells the compiler that the `Flags`
 variable will come from the eax register. Here is the resulting code:
 
@@ -409,7 +409,7 @@ variable will come from the eax register. Here is the resulting code:
         popl %eax
      #NO_APP
         movl %eax,-40(%ebp)
-  
+
 The compiler generated the store of eax into Flags after
 expanding the assembler code.
 
@@ -430,7 +430,7 @@ more simply, we could just pop the flags directly into the program variable:
              Outputs => Unsigned_32'Asm_Output ("=g", Flags));
         Put_Line ("Flags register:" & Flags'Img);
      end Get_Flags_3;
-  
+
 
 .. _Input_Variables_in_Inline_Assembler:
 
@@ -465,7 +465,7 @@ The program simply increments its input value by 1:
         Value := Incr (Value);
        Put_Line ("Value after is" & Value'Img);
      end Increment;
-  
+
 The `Outputs` parameter to `Asm` specifies
 that the result will be in the eax register and that it is to be stored
 in the `Result` variable.
@@ -505,7 +505,7 @@ The resulting assembler file (with *-O2* optimization) contains:
         movl %ecx,(%esp)
         addl $4,%esp
         ret
-  
+
 
 .. _Inlining_Inline_Assembler_Code:
 
@@ -545,7 +545,7 @@ Here is the resulting program:
         Value := Increment (Value);
         Put_Line ("Value after is" & Value'Img);
      end Increment_2;
+
 Compile the program with both optimization (*-O2*) and inlining
 (*-gnatn*) enabled.
 
@@ -557,7 +557,7 @@ point in `Increment` where our function used to be called:
 
      pushl %edi
      call _increment__incr.1
-  
+
 the code for the function body directly appears:
 
 
@@ -607,7 +607,7 @@ assembly code; for example:
           "movl %%ebx, %1",
           Outputs => Unsigned_32'Asm_Output ("=g", Var_Out),
           Inputs  => Unsigned_32'Asm_Input  ("g", Var_In));
-  
+
 where the compiler (since it does not analyze the `Asm` template string)
 does not know you are using the ebx register.
 
@@ -622,7 +622,7 @@ to identify the registers that will be used by your assembly code:
           Outputs => Unsigned_32'Asm_Output ("=g", Var_Out),
           Inputs  => Unsigned_32'Asm_Input  ("g", Var_In),
           Clobber => "ebx");
-  
+
 The Clobber parameter is a static string expression specifying the
 register(s) you are using.  Note that register names are *not* prefixed
 by a percent sign. Also, if more than one register is used then their names
@@ -657,7 +657,7 @@ the `Volatile` parameter to `True`; for example:
           Inputs   => Unsigned_32'Asm_Input  ("g", Var_In),
           Clobber  => "ebx",
           Volatile => True);
-  
+
 By default, `Volatile` is set to `False` unless there is no
 `Outputs` parameter.
 
index d6f36c29058d8cb0ac59c046321f3899e0db771a..8c94f907598279ec9d3d1144d59d36aaafe75328 100644 (file)
@@ -160,7 +160,7 @@ For example on x86-linux::
 
   .. image:: rtlibrary-structure.png
 
-.. only:: not (html or latex) 
+.. only:: not (html or latex)
 
    ::
 
@@ -562,7 +562,7 @@ and::
 
    Ada.Command_Line.Argument (1) -> "'*.txt'"
 
-   
+
 .. _Mixed-Language_Programming_on_Windows:
 
 Mixed-Language Programming on Windows
@@ -1944,7 +1944,7 @@ cookbook-style sequence of steps to follow:
      $ gprbuild -p mylib.gpr
 
 2. Produce a .def file for the symbols you need to interface with, either by
-   hand or automatically with possibly some manual adjustments 
+   hand or automatically with possibly some manual adjustments
    (see :ref:`Creating Definition File Automatically <Create_Def_File_Automatically>`):
 
   ::
index 32d3417e0ff21b396e85e48ed4d6f76abd77e1b9..faedd8ae72d2cf157c793bb5d0900092b2e2e5ba 100644 (file)
@@ -27,7 +27,7 @@ the following material:
   * :ref:`Source_Representation`
   * :ref:`Foreign_Language_Representation`
   * :ref:`File_Naming_Topics_and_Utilities`
-  
+
 * :ref:`Configuration_Pragmas`
 * :ref:`Generating_Object_Files`
 * :ref:`Source_Dependencies`
@@ -217,7 +217,7 @@ possible encoding schemes:
   character sequence::
 
     ESC a b c d
-    
+
   where `a`, `b`, `c`, `d` are the four hexadecimal
   characters (using uppercase letters) of the wide character code. For
   example, ESC A345 is used to represent the wide character with code
@@ -281,7 +281,7 @@ possible encoding schemes:
   character sequence::
 
     [ " a b c d " ]
-    
+
   where `a`, `b`, `c`, `d` are the four hexadecimal
   characters (using uppercase letters) of the wide character code. For
   example, ['A345'] is used to represent the wide character with code
@@ -293,7 +293,7 @@ possible encoding schemes:
   and is also the method used for wide character encoding in some standard
   ACATS (Ada Conformity Assessment Test Suite) test suite distributions.
 
-.. note:: 
+.. note::
 
   Some of these coding schemes do not permit the full use of the
   Ada character set. For example, neither Shift JIS nor EUC allow the
@@ -321,7 +321,7 @@ possible encoding schemes:
                                  10xxxxxx 10xxxxxx
     16#0400_0000#-16#7FFF_FFFF#: 1111110x 10xxxxxx 10xxxxxx
                                  10xxxxxx 10xxxxxx 10xxxxxx
-    
+
 
   where the `xxx` bits correspond to the left-padded bits of the
   32-bit character value.
@@ -332,7 +332,7 @@ possible encoding schemes:
 
     [ " a b c d e f " ]
     [ " a b c d e f g h " ]
-    
+
   where `a-h` are the six or eight hexadecimal
   characters (using uppercase letters) of the wide wide character code. For
   example, ["1F4567"] is used to represent the wide wide character with code
@@ -441,7 +441,7 @@ The form of this pragma is as shown in the following examples:
         Spec_File_Name => "myutilst_a.ada");
       pragma Source_File_name (My_Utilities.Stacks,
         Body_File_Name => "myutilst.ada");
-  
+
 As shown in this example, the first argument for the pragma is the unit
 name (in this example a child unit). The second argument has the form
 of a named association. The identifier
@@ -467,7 +467,7 @@ of the language, here `ada`, as in:
 .. code-block:: sh
 
      $ gcc -c -x ada peculiar_file_name.sim
-  
+
 `gnatmake` handles non-standard file names in the usual manner (the
 non-standard file name for the main program is simply used as the
 argument to gnatmake). Note that if the extension is also non-standard,
@@ -573,7 +573,7 @@ two pragmas appear:
        (Spec_File_Name => ".1.ada");
      pragma Source_File_Name
        (Body_File_Name => ".2.ada");
-  
+
 The default GNAT scheme is actually implemented by providing the following
 default pragmas internally:
 
@@ -583,7 +583,7 @@ default pragmas internally:
        (Spec_File_Name => ".ads", Dot_Replacement => "-");
      pragma Source_File_Name
        (Body_File_Name => ".adb", Dot_Replacement => "-");
-  
+
 Our final example implements a scheme typically used with one of the
 Ada 83 compilers, where the separator character for subunits was '__'
 (two underscores), specs were identified by adding :file:`_.ADA`, bodies
@@ -609,7 +609,7 @@ the same double underscore separator for child units.
         Casing = Uppercase);
 
 
-.. index:: ! gnatname  
+.. index:: ! gnatname
 
 .. _Handling_Arbitrary_File_Naming_Conventions_with_gnatname:
 
@@ -654,7 +654,7 @@ The usual form of the `gnatname` command is:
 
       $ gnatname [`switches`] `naming_pattern` [`naming_patterns`]
           [--and [`switches`] `naming_pattern` [`naming_patterns`]]
-  
+
 
 All of the arguments are optional. If invoked without any argument,
 `gnatname` will display its usage.
@@ -683,7 +683,7 @@ Examples of Naming Patterns are::
      "*.[12].ada"
      "*.ad[sb]*"
      "body_*"    "spec_*"
-  
+
 For a more complete description of the syntax of Naming Patterns,
 see the second kind of regular expressions described in :file:`g-regexp.ads`
 (the 'Glob' regular expressions).
@@ -784,7 +784,7 @@ You may specify any of the following switches to `gnatname`:
   .. code-block:: sh
 
      gnatname -Pprj -f"*.c" "*.ada"
-    
+
   will look for Ada units in all files with the :file:`.ada` extension,
   and will add to the list of file for project :file:`prj.gpr` the C files
   with extension :file:`.c`.
@@ -833,7 +833,7 @@ You may specify any of the following switches to `gnatname`:
   .. code-block:: sh
 
       gnatname -x "*_nt.ada" "*.ada"
-    
+
   will look for Ada units in all files with the :file:`.ada` extension,
   except those whose names end with :file:`_nt.ada`.
 
@@ -846,7 +846,7 @@ Examples of `gnatname` Usage
 .. code-block:: sh
 
      $ gnatname -c /home/me/names.adc -d sources "[a-z]*.ada*"
-  
+
 In this example, the directory :file:`/home/me` must already exist
 and be writable. In addition, the directory
 :file:`/home/me/sources` (specified by
@@ -858,7 +858,7 @@ Note the optional spaces after *-c* and *-d*.
 
      $ gnatname -P/home/me/proj -x "*_nt_body.ada"
      -dsources -dsources/plus -Dcommon_dirs.txt "body_*" "spec_*"
-  
+
 Note that several switches *-d* may be used,
 even in conjunction with one or several switches
 *-D*. Several Naming Patterns and one excluded pattern
@@ -920,7 +920,7 @@ The `gnatkr` command has the form:
 .. code-block:: sh
 
       $ gnatkr `name` [`length`]
-  
+
 `name` is the uncrunched file name, derived from the name of the unit
 in the standard manner described in the previous section (i.e., in particular
 all dots are replaced by hyphens). The file name may or may not have an
@@ -989,7 +989,7 @@ the specified length by following these rules:
       ou  st      wi   fix   9
       ou  st      wi   fi    8
       Final file name: oustwifi.adb
-    
+
 * The file names for all predefined units are always krunched to eight
   characters. The krunching of these predefined units uses the following
   special prefix replacements:
@@ -1023,7 +1023,7 @@ the specified length by following these rules:
       a-  st      wi   fix   9
       a-  st      wi   fi    8
       Final file name: a-stwifi.adb
-    
+
 Of course no file shortening algorithm can guarantee uniqueness over all
 possible unit names, and if file name krunching is used then it is your
 responsibility to ensure that no name clashes occur. The utility
@@ -1043,7 +1043,7 @@ Examples of `gnatkr` Usage
     $ gnatkr grandparent-parent-child     --> grparchi
     $ gnatkr very_long_unit_name.ads/count=6 --> vlunna.ads
     $ gnatkr very_long_unit_name.ads/count=0 --> very_long_unit_name.ads
-  
+
 
 .. _Renaming_Files_with_gnatchop:
 
@@ -1160,7 +1160,7 @@ The `gnatchop` command has the form:
 
      $ gnatchop switches file_name [file_name ...]
            [directory]
-  
+
 The only required argument is the file name of the file to be chopped.
 There are no restrictions on the form of this file name. The file itself
 contains one or more Ada units, in normal GNAT format, concatenated
@@ -1179,19 +1179,19 @@ file called :file:`hellofiles` containing
 .. code-block:: ada
 
      procedure Hello;
-  
+
      with Ada.Text_IO; use Ada.Text_IO;
      procedure Hello is
      begin
         Put_Line ("Hello");
      end Hello;
-  
+
 the command
 
 .. code-block:: sh
 
      $ gnatchop hellofiles
-  
+
 generates two files in the current directory, one called
 :file:`hello.ads` containing the single line that is the procedure spec,
 and the other called :file:`hello.adb` containing the remaining text. The
@@ -1214,13 +1214,13 @@ the command
 .. code-block:: sh
 
      $ gnatchop toto.txt
-  
+
 will not produce any new file and will result in the following warnings::
 
      toto.txt:1:01: warning: empty file, contains no compilation units
      no compilation units found
      no source files written
-  
+
 
 .. _Switches_for_gnatchop:
 
@@ -1355,7 +1355,7 @@ directory are modified).
 .. code-block:: sh
 
       $ gnatchop archive
-   
+
 Chops the source file :file:`archive`
 into the current directory. One
 useful application of `gnatchop` is in sending sets of sources
@@ -1368,7 +1368,7 @@ file names.
 .. code-block:: sh
 
       $ gnatchop file1 file2 file3 direc
-   
+
 Chops all units in files :file:`file1`, :file:`file2`, :file:`file3`, placing
 the resulting files in the directory :file:`direc`. Note that if any units
 occur more than once anywhere within this set of files, an error message
@@ -1390,7 +1390,7 @@ Configuration Pragmas
 Configuration pragmas include those pragmas described as
 such in the Ada Reference Manual, as well as
 implementation-dependent pragmas that are configuration pragmas.
-See the `Implementation_Defined_Pragmas` chapter in the 
+See the `Implementation_Defined_Pragmas` chapter in the
 :title:`GNAT_Reference_Manual` for details on these
 additional GNAT-specific configuration pragmas.
 Most notably, the pragma `Source_File_Name`, which allows
@@ -1446,6 +1446,7 @@ recognized by GNAT::
      Propagate_Exceptions
      Queuing_Policy
      Ravenscar
+     Rename_Pragma
      Restricted_Run_Time
      Restrictions
      Restrictions_Warnings
@@ -1464,7 +1465,7 @@ recognized by GNAT::
      Validity_Checks
      Warnings
      Wide_Character_Encoding
-  
+
 
 .. _Handling_of_Configuration_Pragmas:
 
@@ -1892,13 +1893,13 @@ Here is a simple library project file:
          for Library_Dir use "lib";
          for Library_Kind use "dynamic";
        end My_lib;
-  
+
 and the compilation command to build and install the library:
 
 .. code-block:: sh
 
      $ gnatmake -Pmy_lib
-  
+
 It is not entirely trivial to perform manually all the steps required to
 produce a library. We recommend that you use the GNAT Project Manager
 for this task. In special cases where this is not desired, the necessary
@@ -1925,7 +1926,7 @@ Here is an example of such a dummy program:
        begin
           null;
        end;
-  
+
 Here are the generic commands that will build an archive or a shared library.
 
 .. code-block:: sh
@@ -1950,7 +1951,7 @@ Here are the generic commands that will build an archive or a shared library.
      # Make the ALI files read-only so that gnatmake will not try to
      # regenerate the objects that are in the library
      $ chmod -w *.ali
-  
+
 Please note that the library must have a name of the form :file:`lib{xxx}.a`
 or :file:`lib{xxx}.so` (or :file:`lib{xxx}.dll` on Windows) in order to
 be accessed by the directive :samp:`-l{xxx}` at link time.
@@ -1980,7 +1981,7 @@ file. The location of the gcc spec file can be determined as follows:
 .. code-block:: sh
 
      $ gcc -v
-  
+
 
 The configuration files mentioned above have a simple format: each line
 must contain one unique directory name.
@@ -2029,7 +2030,7 @@ write:
        project My_Proj is
          ...
        end My_Proj;
-  
+
 Even if you have a third-party, non-Ada library, you can still use GNAT's
 Project Manager facility to provide a wrapper for it. For example, the
 following project, when |withed| by your main project, will link with the
@@ -2044,7 +2045,7 @@ third-party library :file:`liba.a`:
           for Library_Name use "a";
           for Library_Kind use "static";
        end Liba;
-  
+
 This is an alternative to the use of `pragma Linker_Options`. It is
 especially interesting in the context of systems with several interdependent
 static libraries where finding a proper linker order is not easy and best be
@@ -2064,7 +2065,7 @@ For example, you can use the library :file:`mylib` installed in
 
      $ gnatmake -aI/dir/my_lib_src -aO/dir/my_lib_obj my_appl \\
        -largs -lmy_lib
-  
+
 This can be expressed more simply:
 
 .. code-block:: sh
@@ -2087,7 +2088,7 @@ when the following conditions are met:
   .. code-block:: ada
 
        pragma Linker_Options ("-lmy_lib");
-    
+
 Note that you may also load a library dynamically at
 run time given its filename, as illustrated in the GNAT :file:`plugins` example
 in the directory :file:`share/examples/gnat/plugins` within the GNAT
@@ -2150,11 +2151,11 @@ that make a project a Library Project (`Library_Name` and
 the attribute `Library_Interface` must be defined.  For example:
 
 .. code-block:: gpr
+
        for Library_Dir use "lib_dir";
        for Library_Name use "dummy";
        for Library_Interface use ("int1", "int1.child");
-  
+
 Attribute `Library_Interface` has a non-empty string list value,
 each string in the list designating a unit contained in an immediate source
 of the project file.
@@ -2195,7 +2196,7 @@ build an encapsulated library the attribute
        for Library_Kind use "dynamic";
        for Library_Interface use ("int1", "int1.child");
        for Library_Standalone use "encapsulated";
-  
+
 The default value for this attribute is `standard` in which case
 a stand-alone library is built.
 
@@ -2226,13 +2227,13 @@ occasions when it is necessary here are the steps that you need to perform:
   .. code-block:: sh
 
       $ gnatbind -n int1.ali int2.ali -Lsal1
-    
+
 * Compile the binder generated file:
 
   .. code-block:: sh
 
       $ gcc -c b~int2.adb
-    
+
 * Link the dynamic library with all the necessary object files,
   indicating to the linker the names of the `init` (and possibly
   `final`) procedures for automatic initialization (and finalization).
@@ -2273,7 +2274,7 @@ Here is an example of simple library interface for use with C main program:
           pragma Export (C, Do_Something_Else, "do_something_else");
 
        end My_Package;
-  
+
 On the foreign language side, you must provide a 'foreign' view of the
 library interface; remember that it should contain elaboration routines in
 addition to interface subprograms.
@@ -2292,7 +2293,7 @@ that there is no rule for the naming of this file, any name can be used)
        /* the interface exported by the library */
        extern void do_something (void);
        extern void do_something_else (void);
-  
+
 Libraries built as explained above can be used from any program, provided
 that the elaboration procedures (named `mylibinit` in the previous
 example) are called before the library services are used. Any number of
@@ -2310,7 +2311,7 @@ Below is an example of a C program that uses the `mylib` library.
        {
           /* First, elaborate the library before using it */
           mylibinit ();
+
           /* Main program, using the library exported entities */
           do_something ();
           do_something_else ();
@@ -2387,7 +2388,7 @@ be determined by means of the command:
 .. code-block:: sh
 
       $ gnatls -v
-  
+
 The last entry in the object search path usually contains the
 gnat library. This Makefile contains its own documentation and in
 particular the set of instructions needed to rebuild a new library and
@@ -2453,7 +2454,7 @@ constants to control which code is executed.
       if FP_Initialize_Required then
       ...
       end if;
-  
+
 Not only will the code inside the `if` statement not be executed if
 the constant Boolean is `False`, but it will also be completely
 deleted from the program.
@@ -2475,7 +2476,7 @@ something like:
           Reset_Available        : constant Boolean := False;
           ...
        end Config;
+
 The `Config` package exists in multiple forms for the various targets,
 with an appropriate script selecting the version of `Config` needed.
 Then any other unit requiring conditional compilation can do a |with|
@@ -2520,13 +2521,13 @@ example, the last test could be written:
 .. code-block:: ada
 
        pragma Assert (Temperature <= 999.0, "Temperature Crazy");
-  
+
 or simply
 
 .. code-block:: ada
 
        pragma Assert (Temperature <= 999.0);
-  
+
 In both cases, if assertions are active and the temperature is excessive,
 the exception `Assert_Failure` will be raised, with the given string in
 the first case or a string indicating the location of the pragma in the second
@@ -2552,7 +2553,7 @@ For the example above with the `Put_Line`, the GNAT-specific pragma
 .. code-block:: ada
 
        pragma Debug (Put_Line ("got to the first stage!"));
-  
+
 If debug pragmas are enabled, the argument, which must be of the form of
 a procedure call, is executed (in this case, `Put_Line` will be called).
 Only one call can be present, but of course a special debugging procedure
@@ -2593,7 +2594,7 @@ to add a `null` statement.
           pragma Assert (Num_Cases < 10);
           null;
        end if;
+
 .. _Conditionalizing_Declarations:
 
 Conditionalizing Declarations
@@ -2691,7 +2692,7 @@ to compile with an Ada 95 compiler. Conceptually you want to say:
        else
           ... not quite as neat Ada 95 code
        end if;
+
 where `Ada_2005` is a Boolean constant.
 
 But this won't work when `Ada_2005` is set to `False`,
@@ -2721,7 +2722,7 @@ This can also be done with project files' naming schemes. For example:
 .. code-block:: gpr
 
        for body ("File_Queries.Insert") use "file_queries-insert-2005.ada";
-  
+
 Note also that with project files it is desirable to use a different extension
 than :file:`ads` / :file:`adb` for alternative versions. Otherwise a naming
 conflict may arise through another commonly used feature: to declare as part
@@ -3024,7 +3025,7 @@ In this example, <expression> is defined by the following grammar::
        <expression> ::=  <expression> and then <expression>
        <expression> ::=  <expression> or else <expression>
        <expression> ::=  ( <expression> )
-  
+
 Note the following restriction: it is not allowed to have "and" or "or"
 following "not" in the same expression without parentheses. For example, this
 is not allowed:
@@ -3032,14 +3033,14 @@ is not allowed:
 .. code-block:: ada
 
        not X or Y
-  
+
 This can be expressed instead as one of the following forms:
 
 .. code-block:: ada
 
      (not X) or Y
      not (X or Y)
-  
+
 For the first test (<expression> ::= <symbol>) the symbol must have
 either the value true or false, that is to say the right-hand of the
 symbol definition must be one of the (case-insensitive) literals
@@ -3089,7 +3090,7 @@ Symbol substitution outside of preprocessor lines is obtained by using
 the sequence::
 
       $symbol
-  
+
 anywhere within a source line, except in a comment or within a
 string literal. The identifier
 following the `$` must match one of the symbols defined in the symbol
@@ -3303,7 +3304,7 @@ the main subprogram in Ada:
 
     /* file1.c */
     #include <stdio.h>
-  
+
     void print_num (int num)
     {
       printf ("num is %d.\\n", num);
@@ -3313,15 +3314,15 @@ the main subprogram in Ada:
 .. code-block:: c
 
     /* file2.c */
-  
+
     /* num_from_Ada is declared in my_main.adb */
     extern int num_from_Ada;
+
     int get_num (void)
     {
       return num_from_Ada;
     }
-  
+
 .. code-block:: ada
 
     --  my_main.adb
@@ -3344,7 +3345,7 @@ the main subprogram in Ada:
     begin
        Print_Num (Get_Num);
     end My_Main;
-  
+
 To build this example:
 
 * First compile the foreign language files to
@@ -3354,7 +3355,7 @@ To build this example:
 
       $ gcc -c file1.c
       $ gcc -c file2.c
-    
+
 * Then, compile the Ada units to produce a set of object files and ALI
   files:
 
@@ -3374,13 +3375,13 @@ To build this example:
   .. code-block:: sh
 
       $ gnatlink my_main.ali file1.o file2.o
-    
+
 The last three steps can be grouped in a single command:
 
 .. code-block:: sh
-  
+
    $ gnatmake my_main.adb -largs file1.o file2.o
-  
+
 
 .. index:: Binder output file
 
@@ -3419,7 +3420,7 @@ sources.  To illustrate, we have the following example:
 
         adafinal();
      }
-  
+
 .. code-block:: ada
 
      --  unit1.ads
@@ -3455,7 +3456,7 @@ sources.  To illustrate, we have the following example:
            return A - B;
         end Sub;
      end Unit2;
-  
+
 The build procedure for this application is similar to the last
 example's:
 
@@ -3464,7 +3465,7 @@ example's:
   .. code-block:: sh
 
       $ gcc -c main.c
-    
+
 
 * Next, compile the Ada units to produce a set of object files and ALI
   files:
@@ -3473,21 +3474,21 @@ example's:
 
       $ gnatmake -c unit1.adb
       $ gnatmake -c unit2.adb
-    
+
 * Run the Ada binder on every generated ALI file.  Make sure to use the
   :option:`-n` option to specify a foreign main program:
 
   .. code-block:: sh
 
       $ gnatbind -n unit1.ali unit2.ali
-    
+
 * Link the Ada main program, the Ada objects and the foreign language
   objects. You need only list the last ALI file here:
 
   .. code-block:: sh
 
       $ gnatlink unit2.ali main.o -o exec_file
-    
+
   This procedure yields a binary executable called :file:`exec_file`.
 
 Depending on the circumstances (for example when your non-Ada main object
@@ -3673,7 +3674,7 @@ Convention identifiers are recognized by GNAT:
       function "/" (D : Distance; T : Time)
         return Velocity;
       pragma Import (Intrinsic, "/");
-      
+
     This common idiom is often programmed with a generic definition and an
     explicit body. The pragma makes it simpler to introduce such declarations.
     It incurs no overhead in compilation time or code size, because it is
@@ -3691,7 +3692,7 @@ Convention identifiers are recognized by GNAT:
 
          function builtin_sqrt (F : Float) return Float;
          pragma Import (Intrinsic, builtin_sqrt, "__builtin_sqrtf");
-      
+
     Most of the GCC builtins are accessible this way, and as for other
     import conventions (e.g. C), it is the user's responsibility to ensure
     that the Ada subprogram profile matches the underlying builtin
@@ -3738,7 +3739,7 @@ pragma:
 .. code-block:: ada
 
      pragma Convention_Identifier (Fortran77, Fortran);
-  
+
 And from now on the identifier Fortran77 may be used as a convention
 identifier (for example in an `Import` pragma) with the same
 meaning as Fortran.
@@ -3805,7 +3806,7 @@ considered:
     $ g++ -c -fkeep-inline-functions file1.C
     $ g++ -c -fkeep-inline-functions file2.C
     $ gnatmake ada_unit -largs file1.o file2.o --LINK=g++
-    
+
 
 * Using GNAT and G++ from two different GCC installations: If both
   compilers are on the :envvar`PATH`, the previous method may be used. It is
@@ -3825,7 +3826,7 @@ considered:
 
     $ gnatbind ada_unit
     $ gnatlink -v -v ada_unit file1.o file2.o --LINK=c++
-    
+
   If there is a problem due to interfering environment variables, it can
   be worked around by using an intermediate script. The following example
   shows the proper script to use when GNAT has not been installed at its
@@ -3839,7 +3840,7 @@ considered:
     unset GCC_ROOT
     c++ $*
     $ gnatlink -v -v ada_unit file1.o file2.o --LINK=./my_script
-    
+
 
 * Using a non-GNU C++ compiler: The commands previously described can be
   used to insure that the C++ linker is used. Nonetheless, you need to add
@@ -3855,7 +3856,7 @@ considered:
     #!/bin/sh
     CC $* `gcc -print-file-name=libgcc.a` `gcc -print-file-name=libgcc_eh.a`
     $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
-    
+
 
   where CC is the name of the non-GNU C++ compiler.
 
@@ -3871,7 +3872,7 @@ considered:
     `gcc -print-file-name=libgcc.a` `gcc -print-file-name=libgcc_eh.a` \\
     `gcc -print-file-name=crtend.o`
     $ gnatlink ada_unit file1.o file2.o --LINK=./my_script
-    
+
 
   If the "zero cost exception" mechanism is used, and the platform
   doesn't support automatic registration of exception tables (e.g., HP-UX
@@ -3907,7 +3908,7 @@ Here are the compilation commands:
      $ g++ -c ex7.C
      $ gnatbind -n simple_cpp_interface
      $ gnatlink simple_cpp_interface -o cpp_main --LINK=g++ -lstdc++ ex7.o cpp_main.o
-  
+
 Here are the corresponding sources:
 
 .. code-block:: cpp
@@ -3977,7 +3978,7 @@ Here are the corresponding sources:
         a_value = 1010;
        printf ("in A::A, a_value = %d \\n",a_value);
      }
-  
+
 .. code-block:: ada
 
      -- simple_cpp_interface.ads
@@ -3998,7 +3999,7 @@ Here are the corresponding sources:
         pragma Export (C, Ada_Method2);
 
      end Simple_Cpp_Interface;
-  
+
 .. code-block:: ada
 
      -- simple_cpp_interface.adb
@@ -4038,7 +4039,7 @@ C++ class:
        Root(int v);         // 1st non-default constructor
        Root(int v, int w);  // 2nd non-default constructor
      };
-  
+
 For this purpose we can write the following package spec (further
 information on how to build this spec is available in
 :ref:`Interfacing_with_C++_at_the_Class_Level` and
@@ -4059,14 +4060,14 @@ information on how to build this spec is available in
 
        function Constructor return Root;
        pragma Cpp_Constructor (Constructor, "_ZN4RootC1Ev");
+
        function Constructor (v : Integer) return Root;
        pragma Cpp_Constructor (Constructor, "_ZN4RootC1Ei");
 
        function Constructor (v, w : Integer) return Root;
        pragma Cpp_Constructor (Constructor, "_ZN4RootC1Eii");
      end Pkg_Root;
-  
+
 On the Ada side the constructor is represented by a function (whose
 name is arbitrary) that returns the classwide type corresponding to
 the imported C++ class. Although the constructor is described as a
@@ -4095,7 +4096,7 @@ expression that initializes the object. For example:
      Obj2 : Root := Constructor;
      Obj3 : Root := Constructor (v => 10);
      Obj4 : Root := Constructor (30, 40);
-  
+
 The first two declarations are equivalent: in both cases the default C++
 constructor is invoked (in the former case the call to the constructor is
 implicit, and in the latter case the call is explicit in the object
@@ -4242,7 +4243,7 @@ and `Domestic` animals:
      public:
         virtual void Set_Owner (char* Name) = 0;
      };
-  
+
 Using these declarations, we can now say that a `Dog` is an animal that is
 both Carnivore and Domestic, that is:
 
@@ -4309,7 +4310,7 @@ how to import these C++ declarations from the Ada side:
        pragma CPP_Constructor (New_Dog);
        pragma Import (CPP, New_Dog, "_ZN3DogC2Ev");
      end Animals;
-  
+
 Thanks to the compatibility between GNAT run-time structures and the C++ ABI,
 interfacing with these C++ classes is easy. The only requirement is that all
 the primitives and components must be declared exactly in the same order in
@@ -4398,7 +4399,7 @@ them to C++, using the same hierarchy of our previous example:
        function New_Dog return Dog'Class;
        pragma Export (C_Plus_Plus, New_Dog);
      end Animals;
-  
+
 Compared with our previous example the only differences are the use of
 `pragma Convention` (instead of `pragma Import`), and the use of
 `pragma Export` to indicate to the GNAT compiler that the primitives will
@@ -4442,7 +4443,7 @@ finalizing the Ada run-time system along the way:
        adainit ();  test();  adafinal ();
        return 0;
      }
-  
+
 .. _Generating_Ada_Bindings_for_C_and_C++_headers:
 
 Generating Ada Bindings for C and C++ headers
@@ -4487,7 +4488,7 @@ header files needed by these files transitively. For example:
 
       $ g++ -c -fdump-ada-spec -C /usr/include/time.h
       $ gcc -c -gnat05 *.ads
-  
+
 will generate, under GNU/Linux, the following files: :file:`time_h.ads`,
 :file:`bits_time_h.ads`, :file:`stddef_h.ads`, :file:`bits_types_h.ads` which
 correspond to the files :file:`/usr/include/time.h`,
@@ -4530,7 +4531,7 @@ generating a generic:
 .. code-block:: ada
 
      procedure foo (param1 : int);
-  
+
 with the C++ front-end, the name is available, and we generate:
 
 .. code-block:: ada
@@ -4615,7 +4616,7 @@ For example, given the following C++ header file:
 
          Dog();
        };
-  
+
 The corresponding Ada code is generated:
 
 .. code-block:: ada
@@ -4668,7 +4669,7 @@ The corresponding Ada code is generated:
            pragma Import (CPP, New_Dog, "_ZN3DogC1Ev");
          end;
          use Class_Dog;
-  
+
 
 .. _Switches_for_Ada_Binding_Generation:
 
@@ -4928,7 +4929,7 @@ we have the following package spec:
      package QRS is
         MN : Integer;
      end QRS;
-  
+
 .. index:: pragma Export
 
 The variable `MN` has a full expanded Ada name of `QRS.MN`, so
@@ -4943,7 +4944,7 @@ Of course if a `pragma Export` is used this may be overridden:
         Var2 : Integer;
         pragma Export (Var2, C, Link_Name => "var2_link_name");
      end Exports;
-  
+
 In this case, the link name for `Var1` is whatever link name the
 C compiler would assign for the C function `var1_name`. This typically
 would be either `var1_name` or `_var1_name`, depending on operating
@@ -4964,4 +4965,3 @@ names. So if we have a library level procedure such as:
      procedure Hello (S : String);
 
 the external name of this procedure will be `_ada_hello`.
-
index f233ab8abbb528cc8ddf388b3bd8392c038f7166..c51ff384c91e1be6d7a5228f8f3f5fc4df9145ef 100644 (file)
@@ -21,7 +21,7 @@
 
 @copying
 @quotation
-GNAT Reference Manual , July 04, 2016
+GNAT Reference Manual , January 13, 2017
 
 AdaCore
 
@@ -200,6 +200,7 @@ Implementation Defined Pragmas
 * Pragma Machine_Attribute:: 
 * Pragma Main:: 
 * Pragma Main_Storage:: 
+* Pragma Max_Queue_Length:: 
 * Pragma No_Body:: 
 * Pragma No_Elaboration_Code_All:: 
 * Pragma No_Inline:: 
@@ -221,6 +222,7 @@ Implementation Defined Pragmas
 * Pragma Post:: 
 * Pragma Postcondition:: 
 * Pragma Post_Class:: 
+* Pragma Rename_Pragma:: 
 * Pragma Pre:: 
 * Pragma Precondition:: 
 * Pragma Predicate:: 
@@ -246,6 +248,7 @@ Implementation Defined Pragmas
 * Pragma Restricted_Run_Time:: 
 * Pragma Restriction_Warnings:: 
 * Pragma Reviewable:: 
+* Pragma Secondary_Stack_Size:: 
 * Pragma Share_Generic:: 
 * Pragma Shared:: 
 * Pragma Short_Circuit_And_Or:: 
@@ -320,6 +323,7 @@ Implementation Defined Aspects
 * Aspect Iterable:: 
 * Aspect Linker_Section:: 
 * Aspect Lock_Free:: 
+* Aspect Max_Queue_Length:: 
 * Aspect No_Elaboration_Code_All:: 
 * Aspect No_Tagged_Streams:: 
 * Aspect Object_Size:: 
@@ -333,6 +337,7 @@ Implementation Defined Aspects
 * Aspect Refined_Post:: 
 * Aspect Refined_State:: 
 * Aspect Remote_Access_Type:: 
+* Aspect Secondary_Stack_Size:: 
 * Aspect Scalar_Storage_Order:: 
 * Aspect Shared:: 
 * Aspect Simple_Storage_Pool:: 
@@ -378,6 +383,7 @@ Implementation Defined Attributes
 * Attribute Enum_Val:: 
 * Attribute Epsilon:: 
 * Attribute Fast_Math:: 
+* Attribute Finalization_Size:: 
 * Attribute Fixed_Value:: 
 * Attribute From_Any:: 
 * Attribute Has_Access_Values:: 
@@ -803,6 +809,7 @@ The GNAT Library
 * Interfaces.C.Streams (i-cstrea.ads): Interfaces C Streams i-cstrea ads. 
 * Interfaces.Packed_Decimal (i-pacdec.ads): Interfaces Packed_Decimal i-pacdec ads. 
 * Interfaces.VxWorks (i-vxwork.ads): Interfaces VxWorks i-vxwork ads. 
+* Interfaces.VxWorks.Int_Connection (i-vxinco.ads): Interfaces VxWorks Int_Connection i-vxinco ads. 
 * Interfaces.VxWorks.IO (i-vxwoio.ads): Interfaces VxWorks IO i-vxwoio ads. 
 * System.Address_Image (s-addima.ads): System Address_Image s-addima ads. 
 * System.Assertions (s-assert.ads): System Assertions s-assert ads. 
@@ -1253,6 +1260,7 @@ consideration, the use of these pragmas should be minimized.
 * Pragma Machine_Attribute:: 
 * Pragma Main:: 
 * Pragma Main_Storage:: 
+* Pragma Max_Queue_Length:: 
 * Pragma No_Body:: 
 * Pragma No_Elaboration_Code_All:: 
 * Pragma No_Inline:: 
@@ -1274,6 +1282,7 @@ consideration, the use of these pragmas should be minimized.
 * Pragma Post:: 
 * Pragma Postcondition:: 
 * Pragma Post_Class:: 
+* Pragma Rename_Pragma:: 
 * Pragma Pre:: 
 * Pragma Precondition:: 
 * Pragma Predicate:: 
@@ -1299,6 +1308,7 @@ consideration, the use of these pragmas should be minimized.
 * Pragma Restricted_Run_Time:: 
 * Pragma Restriction_Warnings:: 
 * Pragma Reviewable:: 
+* Pragma Secondary_Stack_Size:: 
 * Pragma Share_Generic:: 
 * Pragma Shared:: 
 * Pragma Short_Circuit_And_Or:: 
@@ -1771,7 +1781,7 @@ ID_ASSERTION_KIND ::= Assertions           |
                       Refined_Post         |
                       Statement_Assertions
 
-POLICY_IDENTIFIER ::= Check | Disable | Ignore
+POLICY_IDENTIFIER ::= Check | Disable | Ignore | Suppressible
 @end example
 
 This is a standard Ada 2012 pragma that is available as an
@@ -1794,6 +1804,8 @@ If the policy is @cite{IGNORE}, then assertions are ignored, i.e.
 the corresponding pragma or aspect is deactivated.
 This pragma overrides the effect of the @emph{-gnata} switch on the
 command line.
+If the policy is @cite{SUPPRESSIBLE}, then assertions are enabled by default,
+however, if the @emph{-gnatp} switch is specified all assertions are ignored.
 
 The implementation defined policy @cite{DISABLE} is like
 @cite{IGNORE} except that it completely disables semantic
@@ -3763,7 +3775,7 @@ Syntax:
 pragma Implementation_Defined (local_NAME);
 @end example
 
-This pragma marks a previously declared entioty as implementation-defined.
+This pragma marks a previously declared entity as implementation-defined.
 For an overloaded entity, applies to the most recent homonym.
 
 @example
@@ -4936,7 +4948,7 @@ MAIN_OPTION ::=
 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
+@node Pragma Main_Storage,Pragma Max_Queue_Length,Pragma Main,Implementation Defined Pragmas
 @anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{98}
 @section Pragma Main_Storage
 
@@ -4955,8 +4967,24 @@ MAIN_STORAGE_OPTION ::=
 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{99}
+@node Pragma Max_Queue_Length,Pragma No_Body,Pragma Main_Storage,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{99}
+@section Pragma Max_Queue_Length
+
+
+Syntax:
+
+@example
+pragma Max_Entry_Queue (static_integer_EXPRESSION);
+@end example
+
+This pragma is used to specify the maximum callers per entry queue for
+individual protected entries and entry families. It accepts a single
+positive integer as a parameter and must appear after the declaration
+of an entry.
+
+@node Pragma No_Body,Pragma No_Elaboration_Code_All,Pragma Max_Queue_Length,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{9a}
 @section Pragma No_Body
 
 
@@ -4979,7 +5007,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 id22}@anchor{9a}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{9b}
+@anchor{gnat_rm/implementation_defined_pragmas id22}@anchor{9b}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{9c}
 @section Pragma No_Elaboration_Code_All
 
 
@@ -4998,7 +5026,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{9c}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{9d}
 @section Pragma No_Inline
 
 
@@ -5016,7 +5044,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{9d}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{9e}
 @section Pragma No_Return
 
 
@@ -5043,7 +5071,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{9e}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-no-run-time}@anchor{9f}
 @section Pragma No_Run_Time
 
 
@@ -5059,7 +5087,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{9f}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{a0}
 @section Pragma No_Strict_Aliasing
 
 
@@ -5081,7 +5109,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{a0}@anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{a1}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{a1}@anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{a2}
 @section Pragma No_Tagged_Streams
 
 
@@ -5116,7 +5144,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{a2}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{a3}
 @section Pragma Normalize_Scalars
 
 
@@ -5198,7 +5226,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{a3}@anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a4}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{a4}@anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a5}
 @section Pragma Obsolescent
 
 
@@ -5294,7 +5322,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{a5}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{a6}
 @section Pragma Optimize_Alignment
 
 
@@ -5377,7 +5405,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{a6}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{a7}
 @section Pragma Ordered
 
 
@@ -5469,7 +5497,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{a7}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{a8}
 @section Pragma Overflow_Mode
 
 
@@ -5508,7 +5536,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{a8}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{a9}
 @section Pragma Overriding_Renamings
 
 
@@ -5543,7 +5571,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{a9}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{aa}
 @section Pragma Partition_Elaboration_Policy
 
 
@@ -5560,7 +5588,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 id25}@anchor{aa}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{ab}
+@anchor{gnat_rm/implementation_defined_pragmas id25}@anchor{ab}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{ac}
 @section Pragma Part_Of
 
 
@@ -5576,7 +5604,7 @@ For the semantics of this pragma, see the entry for aspect @cite{Part_Of} in the
 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{ac}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{ad}
 @section Pragma Passive
 
 
@@ -5600,7 +5628,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{ad}@anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{ae}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{ae}@anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{af}
 @section Pragma Persistent_BSS
 
 
@@ -5631,7 +5659,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{af}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-polling}@anchor{b0}
 @section Pragma Polling
 
 
@@ -5673,7 +5701,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{b0}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{b1}
 @section Pragma Post
 
 
@@ -5698,7 +5726,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{b1}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{b2}
 @section Pragma Postcondition
 
 
@@ -5862,8 +5890,8 @@ use of the pragma identifier @cite{Check}. Historically, pragma
 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{b2}
+@node Pragma Post_Class,Pragma Rename_Pragma,Pragma Postcondition,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{b3}
 @section Pragma Post_Class
 
 
@@ -5897,8 +5925,47 @@ aspects, but is prepared to ignore the pragmas. The assertion
 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{b3}
+@node Pragma Rename_Pragma,Pragma Pre,Pragma Post_Class,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{b4}
+@section Pragma Rename_Pragma
+
+
+@geindex Pragmas
+@geindex synonyms
+
+Syntax:
+
+@example
+pragma Rename_Pragma (
+         [New_Name =>] IDENTIFIER,
+         [Renamed  =>] pragma_IDENTIFIER);
+@end example
+
+This pragma provides a mechanism for supplying new names for existing
+pragmas. The @cite{New_Name} identifier can subsequently be used as a synonym for
+the Renamed pragma. For example, suppose you have code that was originally
+developed on a compiler that supports Inline_Only as an implementation defined
+pragma. And suppose the semantics of pragma Inline_Only are identical to (or at
+least very similar to) the GNAT implementation defined pragma
+Inline_Always. You could globally replace Inline_Only with Inline_Always.
+
+However, to avoid that source modification, you could instead add a
+configuration pragma:
+
+@example
+pragma Rename_Pragma (
+         New_Name => Inline_Only,
+         Renamed  => Inline_Always);
+@end example
+
+Then GNAT will treat "pragma Inline_Only ..." as if you had written
+"pragma Inline_Always ...".
+
+Pragma Inline_Only will not necessarily mean the same thing as the other Ada
+compiler; it's up to you to make sure the semantics are close enough.
+
+@node Pragma Pre,Pragma Precondition,Pragma Rename_Pragma,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{b5}
 @section Pragma Pre
 
 
@@ -5923,7 +5990,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{b4}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{b6}
 @section Pragma Precondition
 
 
@@ -5982,7 +6049,7 @@ Ada 2012, and has been retained in its original form for
 compatibility purposes.
 
 @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{b5}@anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{b6}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{b7}@anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{b8}
 @section Pragma Predicate
 
 
@@ -6036,7 +6103,7 @@ defined for subtype B). When following this approach, the
 use of predicates should be avoided.
 
 @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{b7}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{b9}
 @section Pragma Predicate_Failure
 
 
@@ -6053,7 +6120,7 @@ the language-defined
 @cite{Predicate_Failure} aspect, and shares its restrictions and semantics.
 
 @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate_Failure,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{b8}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{ba}
 @section Pragma Preelaborable_Initialization
 
 
@@ -6068,7 +6135,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{b9}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{bb}
 @section Pragma Prefix_Exception_Messages
 
 
@@ -6099,7 +6166,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{ba}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{bc}
 @section Pragma Pre_Class
 
 
@@ -6134,7 +6201,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{bb}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{bd}
 @section Pragma Priority_Specific_Dispatching
 
 
@@ -6158,7 +6225,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{bc}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{be}
 @section Pragma Profile
 
 
@@ -6340,6 +6407,9 @@ by @code{No_Implicit_Task_Allocations} and
 The @code{Simple_Barriers} restriction has been replaced by
 @code{Pure_Barriers}.
 
+The @code{Max_Protected_Entries}, @code{Max_Entry_Queue_Length}, and
+@code{No_Relative_Delay} restrictions have been removed.
+
 @item 
 Pragma Profile (Restricted)
 
@@ -6421,7 +6491,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{bd}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{bf}
 @section Pragma Profile_Warnings
 
 
@@ -6439,7 +6509,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{be}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{c0}
 @section Pragma Propagate_Exceptions
 
 
@@ -6458,7 +6528,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{bf}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{c1}
 @section Pragma Provide_Shift_Operators
 
 
@@ -6478,7 +6548,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{c0}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{c2}
 @section Pragma Psect_Object
 
 
@@ -6498,7 +6568,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{c1}@anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{c2}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{c3}@anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{c4}
 @section Pragma Pure_Function
 
 
@@ -6560,7 +6630,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{c3}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{c5}
 @section Pragma Rational
 
 
@@ -6578,7 +6648,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{c4}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{c6}
 @section Pragma Ravenscar
 
 
@@ -6598,7 +6668,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 id29}@anchor{c5}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{c6}
+@anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{c7}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{c8}
 @section Pragma Refined_Depends
 
 
@@ -6631,7 +6701,7 @@ For the semantics of this pragma, see the entry for aspect @cite{Refined_Depends
 the 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{c7}@anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{c8}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{c9}@anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{ca}
 @section Pragma Refined_Global
 
 
@@ -6656,7 +6726,7 @@ For the semantics of this pragma, see the entry for aspect @cite{Refined_Global}
 the 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{c9}@anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{ca}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{cb}@anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{cc}
 @section Pragma Refined_Post
 
 
@@ -6670,7 +6740,7 @@ For the semantics of this pragma, see the entry for aspect @cite{Refined_Post} i
 the 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{cb}@anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{cc}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{cd}@anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{ce}
 @section Pragma Refined_State
 
 
@@ -6696,7 +6766,7 @@ For the semantics of this pragma, see the entry for aspect @cite{Refined_State}
 the 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{cd}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{cf}
 @section Pragma Relative_Deadline
 
 
@@ -6711,7 +6781,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 id33}@anchor{ce}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{cf}
+@anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{d0}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{d1}
 @section Pragma Remote_Access_Type
 
 
@@ -6737,7 +6807,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{d0}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{d2}
 @section Pragma Restricted_Run_Time
 
 
@@ -6758,7 +6828,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{d1}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{d3}
 @section Pragma Restriction_Warnings
 
 
@@ -6795,8 +6865,8 @@ the Ada_95 and Style_Checks pragmas are accepted without
 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{d2}
+@node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{d4}
 @section Pragma Reviewable
 
 
@@ -6899,8 +6969,44 @@ may be used to obtain complete control and data-flow information, as well as
 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{d3}
+@node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{d5}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{d6}
+@section Pragma Secondary_Stack_Size
+
+
+Syntax:
+
+@example
+pragma Secondary_Stack_Size (integer_EXPRESSION);
+@end example
+
+This pragma appears within the task definition of a single task declaration
+or a task type declaration (like pragma @cite{Storage_Size}) and applies to all
+task objects of that type. The argument specifies the size of the secondary
+stack to be used by these task objects, and must be of an integer type. The
+secondary stack is used to handle functions that return a variable-sized
+result, for example a function returning an unconstrained String.
+
+Note this pragma only applies to targets using fixed secondary stacks, like
+VxWorks 653 and bare board targets, where a fixed block for the
+secondary stack is allocated from the primary stack of the task. By default,
+these targets assign a percentage of the primary stack for the secondary stack,
+as defined by @cite{System.Parameter.Sec_Stack_Percentage}. With this pragma,
+an @cite{integer_EXPRESSION} of bytes is assigned from the primary stack instead.
+
+For most targets, the pragma does not apply as the secondary stack grows on
+demand: allocated as a chain of blocks in the heap. The default size of these
+blocks can be modified via the @cite{-D} binder option as described in
+@cite{GNAT User's Guide}.
+
+Note that no check is made to see if the secondary stack can fit inside the
+primary stack.
+
+Note the pragma cannot appear when the restriction @cite{No_Secondary_Stack}
+is in effect.
+
+@node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
+@anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{d7}
 @section Pragma Share_Generic
 
 
@@ -6918,7 +7024,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 id34}@anchor{d4}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{d5}
+@anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{d9}
 @section Pragma Shared
 
 
@@ -6926,7 +7032,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{d6}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{da}
 @section Pragma Short_Circuit_And_Or
 
 
@@ -6945,7 +7051,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{d7}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{db}
 @section Pragma Short_Descriptors
 
 
@@ -6959,7 +7065,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{d8}@anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d9}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{dd}
 @section Pragma Simple_Storage_Pool_Type
 
 
@@ -7013,7 +7119,7 @@ storage-management discipline).
 
 An object of a simple storage pool type can be associated with an access
 type by specifying the attribute
-@ref{da,,Simple_Storage_Pool}. For example:
+@ref{de,,Simple_Storage_Pool}. For example:
 
 @example
 My_Pool : My_Simple_Storage_Pool_Type;
@@ -7023,11 +7129,11 @@ type Acc is access My_Data_Type;
 for Acc'Simple_Storage_Pool use My_Pool;
 @end example
 
-See attribute @ref{da,,Simple_Storage_Pool}
+See attribute @ref{de,,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 id36}@anchor{db}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{dc}
+@anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{df}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{e0}
 @section Pragma Source_File_Name
 
 
@@ -7119,19 +7225,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{dd,,Pragma Source_File_Name_Project}.
+Source_File_Name cannot appear after a @ref{e1,,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 id37}@anchor{de}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{dd}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{e1}@anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{e2}
 @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{dc,,Pragma Source_File_Name}, and
+It cannot appear after a @ref{e0,,Pragma Source_File_Name}, and
 most importantly, once pragma Source_File_Name_Project appears,
 no further Source_File_Name pragmas are allowed.
 
@@ -7143,7 +7249,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{df}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{e3}
 @section Pragma Source_Reference
 
 
@@ -7167,7 +7273,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{e0}@anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{e1}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{e4}@anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{e5}
 @section Pragma SPARK_Mode
 
 
@@ -7249,7 +7355,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{e2}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{e6}
 @section Pragma Static_Elaboration_Desired
 
 
@@ -7273,7 +7379,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{e3}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{e7}
 @section Pragma Stream_Convert
 
 
@@ -7350,7 +7456,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{e4}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{e8}
 @section Pragma Style_Checks
 
 
@@ -7423,7 +7529,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{e5}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{e9}
 @section Pragma Subtitle
 
 
@@ -7437,7 +7543,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{e6}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{ea}
 @section Pragma Suppress
 
 
@@ -7510,7 +7616,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{e7}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{eb}
 @section Pragma Suppress_All
 
 
@@ -7529,7 +7635,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{e8}@anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{e9}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{ec}@anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{ed}
 @section Pragma Suppress_Debug_Info
 
 
@@ -7544,7 +7650,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{ea}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{ee}
 @section Pragma Suppress_Exception_Locations
 
 
@@ -7567,7 +7673,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 id40}@anchor{eb}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{ec}
+@anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{ef}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{f0}
 @section Pragma Suppress_Initialization
 
 
@@ -7612,7 +7718,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{ed}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{f1}
 @section Pragma Task_Name
 
 
@@ -7668,7 +7774,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{ee}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{f2}
 @section Pragma Task_Storage
 
 
@@ -7688,7 +7794,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{ef}@anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{f0}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{f3}@anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{f4}
 @section Pragma Test_Case
 
 
@@ -7744,7 +7850,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{f1}@anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{f2}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{f5}@anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{f6}
 @section Pragma Thread_Local_Storage
 
 
@@ -7778,7 +7884,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{f3}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{f7}
 @section Pragma Time_Slice
 
 
@@ -7794,7 +7900,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{f4}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{f8}
 @section Pragma Title
 
 
@@ -7819,7 +7925,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{f5}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{f9}
 @section Pragma Type_Invariant
 
 
@@ -7840,7 +7946,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 id43}@anchor{f6}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{f7}
+@anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{fa}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{fb}
 @section Pragma Type_Invariant_Class
 
 
@@ -7867,7 +7973,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{f8}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{fc}
 @section Pragma Unchecked_Union
 
 
@@ -7887,7 +7993,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{f9}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{fd}
 @section Pragma Unevaluated_Use_Of_Old
 
 
@@ -7942,7 +8048,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{fa}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{fe}
 @section Pragma Unimplemented_Unit
 
 
@@ -7962,7 +8068,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 id44}@anchor{fb}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{fc}
+@anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{ff}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{100}
 @section Pragma Universal_Aliasing
 
 
@@ -7981,7 +8087,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{fd}@anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{fe}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-data}@anchor{101}@anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{102}
 @section Pragma Universal_Data
 
 
@@ -8005,7 +8111,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 id46}@anchor{ff}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{100}
+@anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{103}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{104}
 @section Pragma Unmodified
 
 
@@ -8039,7 +8145,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 id47}@anchor{101}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{102}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{105}@anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{106}
 @section Pragma Unreferenced
 
 
@@ -8083,7 +8189,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{a3,,Pragma Obsolescent}.
+for this purpose, see @ref{a4,,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
@@ -8099,7 +8205,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{103}@anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{104}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{107}@anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{108}
 @section Pragma Unreferenced_Objects
 
 
@@ -8124,7 +8230,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{105}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{109}
 @section Pragma Unreserve_All_Interrupts
 
 
@@ -8160,7 +8266,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{106}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{10a}
 @section Pragma Unsuppress
 
 
@@ -8196,7 +8302,7 @@ number of implementation-defined check names. See the description of pragma
 @cite{Suppress} for full details.
 
 @node Pragma Use_VADS_Size,Pragma Unused,Pragma Unsuppress,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{107}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{10b}
 @section Pragma Use_VADS_Size
 
 
@@ -8220,7 +8326,7 @@ as implemented in the VADS compiler.  See description of the VADS_Size
 attribute for further details.
 
 @node Pragma Unused,Pragma Validity_Checks,Pragma Use_VADS_Size,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{109}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{10c}@anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{10d}
 @section Pragma Unused
 
 
@@ -8254,7 +8360,7 @@ Thus it is never necessary to use @cite{pragma Unmodified} for such
 variables, though it is harmless to do so.
 
 @node Pragma Validity_Checks,Pragma Volatile,Pragma Unused,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{10a}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{10e}
 @section Pragma Validity_Checks
 
 
@@ -8311,7 +8417,7 @@ A := C;                       -- C will be validity checked
 @end example
 
 @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{10b}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{10f}
 @section Pragma Volatile
 
 
@@ -8329,7 +8435,7 @@ implementation of pragma Volatile is upwards compatible with the
 implementation in DEC Ada 83.
 
 @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{10c}@anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{10d}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{110}@anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{111}
 @section Pragma Volatile_Full_Access
 
 
@@ -8361,7 +8467,7 @@ It is not permissible to specify @cite{Volatile_Full_Access} for a composite
 (record or array) type or object that has at least one @cite{Aliased} component.
 
 @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10e}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{10f}
+@anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{112}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{113}
 @section Pragma Volatile_Function
 
 
@@ -8375,7 +8481,7 @@ For the semantics of this pragma, see the entry for aspect @cite{Volatile_Functi
 in the SPARK 2014 Reference Manual, section 7.1.2.
 
 @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
-@anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{110}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{114}
 @section Pragma Warning_As_Error
 
 
@@ -8410,7 +8516,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{111,,Pragma Warnings}.
+warnings provided by the back end and mentioned in @ref{115,,Pragma Warnings}.
 By using a single full @emph{-Wxxx} switch in the pragma, such warnings
 can also be treated as errors.
 
@@ -8460,7 +8566,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 pragma-warnings}@anchor{111}@anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{112}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{115}@anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{116}
 @section Pragma Warnings
 
 
@@ -8612,7 +8718,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{113}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{117}
 @section Pragma Weak_External
 
 
@@ -8663,7 +8769,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{114}
+@anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{118}
 @section Pragma Wide_Character_Encoding
 
 
@@ -8690,7 +8796,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{115}@anchor{gnat_rm/implementation_defined_aspects doc}@anchor{116}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{117}
+@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{119}@anchor{gnat_rm/implementation_defined_aspects doc}@anchor{11a}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{11b}
 @chapter Implementation Defined Aspects
 
 
@@ -8770,6 +8876,7 @@ or attribute definition clause.
 * Aspect Iterable:: 
 * Aspect Linker_Section:: 
 * Aspect Lock_Free:: 
+* Aspect Max_Queue_Length:: 
 * Aspect No_Elaboration_Code_All:: 
 * Aspect No_Tagged_Streams:: 
 * Aspect Object_Size:: 
@@ -8783,6 +8890,7 @@ or attribute definition clause.
 * Aspect Refined_Post:: 
 * Aspect Refined_State:: 
 * Aspect Remote_Access_Type:: 
+* Aspect Secondary_Stack_Size:: 
 * Aspect Scalar_Storage_Order:: 
 * Aspect Shared:: 
 * Aspect Simple_Storage_Pool:: 
@@ -8805,7 +8913,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{118}
+@anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{11c}
 @section Aspect Abstract_State
 
 
@@ -8814,7 +8922,7 @@ or attribute definition clause.
 This aspect is equivalent to @ref{1c,,pragma Abstract_State}.
 
 @node Annotate,Aspect Async_Readers,Aspect Abstract_State,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects annotate}@anchor{119}
+@anchor{gnat_rm/implementation_defined_aspects annotate}@anchor{11d}
 @section Annotate
 
 
@@ -8841,7 +8949,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{11a}
+@anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{11e}
 @section Aspect Async_Readers
 
 
@@ -8850,7 +8958,7 @@ Equivalent to @cite{pragma Annotate (ID@comma{} ID @{@comma{} ARG@}@comma{} Enti
 This boolean aspect is equivalent to @ref{2c,,pragma Async_Readers}.
 
 @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{11b}
+@anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{11f}
 @section Aspect Async_Writers
 
 
@@ -8859,7 +8967,7 @@ This boolean aspect is equivalent to @ref{2c,,pragma Async_Readers}.
 This boolean aspect is equivalent to @ref{2f,,pragma Async_Writers}.
 
 @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{11c}
+@anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{120}
 @section Aspect Constant_After_Elaboration
 
 
@@ -8868,7 +8976,7 @@ This boolean aspect is equivalent to @ref{2f,,pragma Async_Writers}.
 This aspect is equivalent to @ref{40,,pragma Constant_After_Elaboration}.
 
 @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{11d}
+@anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{121}
 @section Aspect Contract_Cases
 
 
@@ -8879,7 +8987,7 @@ of clauses being enclosed in parentheses so that syntactically it is an
 aggregate.
 
 @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{11e}
+@anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{122}
 @section Aspect Depends
 
 
@@ -8888,7 +8996,7 @@ aggregate.
 This aspect is equivalent to @ref{50,,pragma Depends}.
 
 @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{11f}
+@anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{123}
 @section Aspect Default_Initial_Condition
 
 
@@ -8897,7 +9005,7 @@ This aspect is equivalent to @ref{50,,pragma Depends}.
 This aspect is equivalent to @ref{4b,,pragma Default_Initial_Condition}.
 
 @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{120}
+@anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{124}
 @section Aspect Dimension
 
 
@@ -8933,7 +9041,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 Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{121}
+@anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{125}
 @section Aspect Dimension_System
 
 
@@ -8993,7 +9101,7 @@ See section 'Performing Dimensionality Analysis in GNAT' in the GNAT Users
 Guide for detailed examples of use of the dimension system.
 
 @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{122}
+@anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{126}
 @section Aspect Disable_Controlled
 
 
@@ -9006,7 +9114,7 @@ where for example you might want a record to be controlled or not depending on
 whether some run-time check is enabled or suppressed.
 
 @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{123}
+@anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{127}
 @section Aspect Effective_Reads
 
 
@@ -9015,7 +9123,7 @@ whether some run-time check is enabled or suppressed.
 This aspect is equivalent to @ref{56,,pragma Effective_Reads}.
 
 @node Aspect Effective_Writes,Aspect Extensions_Visible,Aspect Effective_Reads,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{124}
+@anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{128}
 @section Aspect Effective_Writes
 
 
@@ -9024,7 +9132,7 @@ This aspect is equivalent to @ref{56,,pragma Effective_Reads}.
 This aspect is equivalent to @ref{58,,pragma Effective_Writes}.
 
 @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Effective_Writes,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{125}
+@anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{129}
 @section Aspect Extensions_Visible
 
 
@@ -9033,7 +9141,7 @@ This aspect is equivalent to @ref{58,,pragma Effective_Writes}.
 This aspect is equivalent to @ref{64,,pragma Extensions_Visible}.
 
 @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{126}
+@anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{12a}
 @section Aspect Favor_Top_Level
 
 
@@ -9042,7 +9150,7 @@ This aspect is equivalent to @ref{64,,pragma Extensions_Visible}.
 This boolean aspect is equivalent to @ref{69,,pragma Favor_Top_Level}.
 
 @node Aspect Ghost,Aspect Global,Aspect Favor_Top_Level,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{127}
+@anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{12b}
 @section Aspect Ghost
 
 
@@ -9051,7 +9159,7 @@ This boolean aspect is equivalent to @ref{69,,pragma Favor_Top_Level}.
 This aspect is equivalent to @ref{6c,,pragma Ghost}.
 
 @node Aspect Global,Aspect Initial_Condition,Aspect Ghost,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{128}
+@anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{12c}
 @section Aspect Global
 
 
@@ -9060,7 +9168,7 @@ This aspect is equivalent to @ref{6c,,pragma Ghost}.
 This aspect is equivalent to @ref{6e,,pragma Global}.
 
 @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{129}
+@anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{12d}
 @section Aspect Initial_Condition
 
 
@@ -9069,7 +9177,7 @@ This aspect is equivalent to @ref{6e,,pragma Global}.
 This aspect is equivalent to @ref{7c,,pragma Initial_Condition}.
 
 @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{12a}
+@anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{12e}
 @section Aspect Initializes
 
 
@@ -9078,7 +9186,7 @@ This aspect is equivalent to @ref{7c,,pragma Initial_Condition}.
 This aspect is equivalent to @ref{7e,,pragma Initializes}.
 
 @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{12b}
+@anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{12f}
 @section Aspect Inline_Always
 
 
@@ -9087,7 +9195,7 @@ This aspect is equivalent to @ref{7e,,pragma Initializes}.
 This boolean aspect is equivalent to @ref{81,,pragma Inline_Always}.
 
 @node Aspect Invariant,Aspect Invariant'Class,Aspect Inline_Always,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{12c}
+@anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{130}
 @section Aspect Invariant
 
 
@@ -9098,18 +9206,18 @@ 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{12d}
+@anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{131}
 @section Aspect Invariant'Class
 
 
 @geindex Invariant'Class
 
-This aspect is equivalent to @ref{f7,,pragma Type_Invariant_Class}. It is a
+This aspect is equivalent to @ref{fb,,pragma Type_Invariant_Class}. It is a
 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{12e}
+@anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{132}
 @section Aspect Iterable
 
 
@@ -9185,7 +9293,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{12f}
+@anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{133}
 @section Aspect Linker_Section
 
 
@@ -9193,8 +9301,8 @@ This aspect is used in the GNAT-defined formal container packages.
 
 This aspect is equivalent to @ref{90,,pragma Linker_Section}.
 
-@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{130}
+@node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Linker_Section,Implementation Defined Aspects
+@anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{134}
 @section Aspect Lock_Free
 
 
@@ -9202,73 +9310,82 @@ This aspect is equivalent to @ref{90,,pragma Linker_Section}.
 
 This boolean aspect is equivalent to @ref{92,,pragma 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{131}
+@node Aspect Max_Queue_Length,Aspect No_Elaboration_Code_All,Aspect Lock_Free,Implementation Defined Aspects
+@anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{135}
+@section Aspect Max_Queue_Length
+
+
+@geindex Max_Queue_Length
+
+This aspect is equivalent to @emph{pragma Max_Queue_Length}.
+
+@node Aspect No_Elaboration_Code_All,Aspect No_Tagged_Streams,Aspect Max_Queue_Length,Implementation Defined Aspects
+@anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{136}
 @section Aspect No_Elaboration_Code_All
 
 
 @geindex No_Elaboration_Code_All
 
-This aspect is equivalent to @ref{9b,,pragma No_Elaboration_Code_All}
+This aspect is equivalent to @ref{9c,,pragma No_Elaboration_Code_All}
 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{132}
+@anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{137}
 @section Aspect No_Tagged_Streams
 
 
 @geindex No_Tagged_Streams
 
-This aspect is equivalent to @ref{a0,,pragma No_Tagged_Streams} with an
+This aspect is equivalent to @ref{a1,,pragma No_Tagged_Streams} with an
 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{133}
+@anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{138}
 @section Aspect Object_Size
 
 
 @geindex Object_Size
 
-This aspect is equivalent to @ref{134,,attribute Object_Size}.
+This aspect is equivalent to @ref{139,,attribute Object_Size}.
 
 @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{135}
+@anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{13a}
 @section Aspect Obsolescent
 
 
 @geindex Obsolsecent
 
-This aspect is equivalent to @ref{a3,,pragma Obsolescent}. Note that the
+This aspect is equivalent to @ref{a4,,pragma Obsolescent}. Note that the
 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{136}
+@anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{13b}
 @section Aspect Part_Of
 
 
 @geindex Part_Of
 
-This aspect is equivalent to @ref{ab,,pragma Part_Of}.
+This aspect is equivalent to @ref{ac,,pragma Part_Of}.
 
 @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{137}
+@anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{13c}
 @section Aspect Persistent_BSS
 
 
 @geindex Persistent_BSS
 
-This boolean aspect is equivalent to @ref{ad,,pragma Persistent_BSS}.
+This boolean aspect is equivalent to @ref{ae,,pragma Persistent_BSS}.
 
 @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{138}
+@anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{13d}
 @section Aspect Predicate
 
 
 @geindex Predicate
 
-This aspect is equivalent to @ref{b5,,pragma Predicate}. It is thus
+This aspect is equivalent to @ref{b7,,pragma Predicate}. It is thus
 similar to the language defined aspects @cite{Dynamic_Predicate}
 and @cite{Static_Predicate} except that whether the resulting
 predicate is static or dynamic is controlled by the form of the
@@ -9276,230 +9393,239 @@ 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{139}
+@anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{13e}
 @section Aspect Pure_Function
 
 
 @geindex Pure_Function
 
-This boolean aspect is equivalent to @ref{c1,,pragma Pure_Function}.
+This boolean aspect is equivalent to @ref{c3,,pragma 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{13a}
+@anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{13f}
 @section Aspect Refined_Depends
 
 
 @geindex Refined_Depends
 
-This aspect is equivalent to @ref{c6,,pragma Refined_Depends}.
+This aspect is equivalent to @ref{c8,,pragma 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{13b}
+@anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{140}
 @section Aspect Refined_Global
 
 
 @geindex Refined_Global
 
-This aspect is equivalent to @ref{c7,,pragma Refined_Global}.
+This aspect is equivalent to @ref{c9,,pragma 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{13c}
+@anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{141}
 @section Aspect Refined_Post
 
 
 @geindex Refined_Post
 
-This aspect is equivalent to @ref{c9,,pragma Refined_Post}.
+This aspect is equivalent to @ref{cb,,pragma 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{13d}
+@anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{142}
 @section Aspect Refined_State
 
 
 @geindex Refined_State
 
-This aspect is equivalent to @ref{cb,,pragma Refined_State}.
+This aspect is equivalent to @ref{cd,,pragma 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{13e}
+@node Aspect Remote_Access_Type,Aspect Secondary_Stack_Size,Aspect Refined_State,Implementation Defined Aspects
+@anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{143}
 @section Aspect Remote_Access_Type
 
 
 @geindex Remote_Access_Type
 
-This aspect is equivalent to @ref{cf,,pragma Remote_Access_Type}.
+This aspect is equivalent to @ref{d1,,pragma Remote_Access_Type}.
+
+@node Aspect Secondary_Stack_Size,Aspect Scalar_Storage_Order,Aspect Remote_Access_Type,Implementation Defined Aspects
+@anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{144}
+@section Aspect Secondary_Stack_Size
+
+
+@geindex Secondary_Stack_Size
+
+This aspect is equivalent to @ref{d6,,pragma Secondary_Stack_Size}.
 
-@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{13f}
+@node Aspect Scalar_Storage_Order,Aspect Shared,Aspect Secondary_Stack_Size,Implementation Defined Aspects
+@anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{145}
 @section Aspect Scalar_Storage_Order
 
 
 @geindex Scalar_Storage_Order
 
-This aspect is equivalent to a @ref{140,,attribute Scalar_Storage_Order}.
+This aspect is equivalent to a @ref{146,,attribute Scalar_Storage_Order}.
 
 @node Aspect Shared,Aspect Simple_Storage_Pool,Aspect Scalar_Storage_Order,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{141}
+@anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{147}
 @section Aspect Shared
 
 
 @geindex Shared
 
-This boolean aspect is equivalent to @ref{d5,,pragma Shared}
+This boolean aspect is equivalent to @ref{d9,,pragma 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{142}
+@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{148}
 @section Aspect Simple_Storage_Pool
 
 
 @geindex Simple_Storage_Pool
 
-This aspect is equivalent to @ref{da,,attribute Simple_Storage_Pool}.
+This aspect is equivalent to @ref{de,,attribute Simple_Storage_Pool}.
 
 @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{143}
+@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{149}
 @section Aspect Simple_Storage_Pool_Type
 
 
 @geindex Simple_Storage_Pool_Type
 
-This boolean aspect is equivalent to @ref{d8,,pragma Simple_Storage_Pool_Type}.
+This boolean aspect is equivalent to @ref{dc,,pragma 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{144}
+@anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{14a}
 @section Aspect SPARK_Mode
 
 
 @geindex SPARK_Mode
 
-This aspect is equivalent to @ref{e0,,pragma SPARK_Mode} and
+This aspect is equivalent to @ref{e4,,pragma SPARK_Mode} and
 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{145}
+@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{14b}
 @section Aspect Suppress_Debug_Info
 
 
 @geindex Suppress_Debug_Info
 
-This boolean aspect is equivalent to @ref{e8,,pragma Suppress_Debug_Info}.
+This boolean aspect is equivalent to @ref{ec,,pragma 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{146}
+@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{14c}
 @section Aspect Suppress_Initialization
 
 
 @geindex Suppress_Initialization
 
-This boolean aspect is equivalent to @ref{ec,,pragma Suppress_Initialization}.
+This boolean aspect is equivalent to @ref{f0,,pragma 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{147}
+@anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{14d}
 @section Aspect Test_Case
 
 
 @geindex Test_Case
 
-This aspect is equivalent to @ref{ef,,pragma Test_Case}.
+This aspect is equivalent to @ref{f3,,pragma 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{148}
+@anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{14e}
 @section Aspect Thread_Local_Storage
 
 
 @geindex Thread_Local_Storage
 
-This boolean aspect is equivalent to @ref{f1,,pragma Thread_Local_Storage}.
+This boolean aspect is equivalent to @ref{f5,,pragma 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{149}
+@anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{14f}
 @section Aspect Universal_Aliasing
 
 
 @geindex Universal_Aliasing
 
-This boolean aspect is equivalent to @ref{fc,,pragma Universal_Aliasing}.
+This boolean aspect is equivalent to @ref{100,,pragma Universal_Aliasing}.
 
 @node Aspect Universal_Data,Aspect Unmodified,Aspect Universal_Aliasing,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-universal-data}@anchor{14a}
+@anchor{gnat_rm/implementation_defined_aspects aspect-universal-data}@anchor{150}
 @section Aspect Universal_Data
 
 
 @geindex Universal_Data
 
-This aspect is equivalent to @ref{fd,,pragma Universal_Data}.
+This aspect is equivalent to @ref{101,,pragma Universal_Data}.
 
 @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Data,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{14b}
+@anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{151}
 @section Aspect Unmodified
 
 
 @geindex Unmodified
 
-This boolean aspect is equivalent to @ref{100,,pragma Unmodified}.
+This boolean aspect is equivalent to @ref{104,,pragma Unmodified}.
 
 @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{14c}
+@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{152}
 @section Aspect Unreferenced
 
 
 @geindex Unreferenced
 
-This boolean aspect is equivalent to @ref{102,,pragma Unreferenced}. Note that
+This boolean aspect is equivalent to @ref{105,,pragma Unreferenced}. Note that
 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{14d}
+@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{153}
 @section Aspect Unreferenced_Objects
 
 
 @geindex Unreferenced_Objects
 
-This boolean aspect is equivalent to @ref{103,,pragma Unreferenced_Objects}.
+This boolean aspect is equivalent to @ref{107,,pragma Unreferenced_Objects}.
 
 @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect Unreferenced_Objects,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{14e}
+@anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{154}
 @section Aspect Value_Size
 
 
 @geindex Value_Size
 
-This aspect is equivalent to @ref{14f,,attribute Value_Size}.
+This aspect is equivalent to @ref{155,,attribute Value_Size}.
 
 @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{150}
+@anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{156}
 @section Aspect Volatile_Full_Access
 
 
 @geindex Volatile_Full_Access
 
-This boolean aspect is equivalent to @ref{10c,,pragma Volatile_Full_Access}.
+This boolean aspect is equivalent to @ref{110,,pragma Volatile_Full_Access}.
 
 @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{151}
+@anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{157}
 @section Aspect Volatile_Function
 
 
 @geindex Volatile_Function
 
-This boolean aspect is equivalent to @ref{10f,,pragma Volatile_Function}.
+This boolean aspect is equivalent to @ref{113,,pragma Volatile_Function}.
 
 @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
-@anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{152}
+@anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{158}
 @section Aspect Warnings
 
 
 @geindex Warnings
 
-This aspect is equivalent to the two argument form of @ref{111,,pragma Warnings},
+This aspect is equivalent to the two argument form of @ref{115,,pragma Warnings},
 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{153}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{154}
+@anchor{gnat_rm/implementation_defined_attributes doc}@anchor{159}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{15a}
 @chapter Implementation Defined Attributes
 
 
@@ -9547,6 +9673,7 @@ consideration, you should minimize the use of these attributes.
 * Attribute Enum_Val:: 
 * Attribute Epsilon:: 
 * Attribute Fast_Math:: 
+* Attribute Finalization_Size:: 
 * Attribute Fixed_Value:: 
 * Attribute From_Any:: 
 * Attribute Has_Access_Values:: 
@@ -9599,7 +9726,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{155}
+@anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{15b}
 @section Attribute Abort_Signal
 
 
@@ -9613,7 +9740,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{156}
+@anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{15c}
 @section Attribute Address_Size
 
 
@@ -9629,7 +9756,7 @@ reference to System.Address'Size is nonstatic 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{157}
+@anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{15d}
 @section Attribute Asm_Input
 
 
@@ -9643,10 +9770,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{158,,Machine Code Insertions}
+@ref{15e,,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{159}
+@anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{15f}
 @section Attribute Asm_Output
 
 
@@ -9662,10 +9789,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{158,,Machine Code Insertions}
+@ref{15e,,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{15a}
+@anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{160}
 @section Attribute Atomic_Always_Lock_Free
 
 
@@ -9677,7 +9804,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{15b}
+@anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{161}
 @section Attribute Bit
 
 
@@ -9708,7 +9835,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{15c}
+@anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{162}
 @section Attribute Bit_Position
 
 
@@ -9723,7 +9850,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{15d}
+@anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{163}
 @section Attribute Code_Address
 
 
@@ -9766,7 +9893,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{15e}
+@anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{164}
 @section Attribute Compiler_Version
 
 
@@ -9777,7 +9904,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{15f}
+@anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{165}
 @section Attribute Constrained
 
 
@@ -9792,7 +9919,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{160}
+@anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{166}
 @section Attribute Default_Bit_Order
 
 
@@ -9809,7 +9936,7 @@ as a @cite{Pos} value (0 for @cite{High_Order_First}, 1 for
 @cite{Default_Bit_Order} in package @cite{System}.
 
 @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{161}
+@anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{167}
 @section Attribute Default_Scalar_Storage_Order
 
 
@@ -9826,7 +9953,7 @@ equal to @cite{Default_Bit_Order} if unspecified) as a
 @cite{System.Bit_Order} value. This is a static attribute.
 
 @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
-@anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{162}
+@anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{168}
 @section Attribute Deref
 
 
@@ -9839,7 +9966,7 @@ a named access-to-@cite{typ} type, except that it yields a variable, so it can b
 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{163}
+@anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{169}
 @section Attribute Descriptor_Size
 
 
@@ -9866,7 +9993,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{164}
+@anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{16a}
 @section Attribute Elaborated
 
 
@@ -9881,7 +10008,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{165}
+@anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{16b}
 @section Attribute Elab_Body
 
 
@@ -9897,7 +10024,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{166}
+@anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{16c}
 @section Attribute Elab_Spec
 
 
@@ -9913,7 +10040,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{167}
+@anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{16d}
 @section Attribute Elab_Subp_Body
 
 
@@ -9927,7 +10054,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{168}
+@anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{16e}
 @section Attribute Emax
 
 
@@ -9940,7 +10067,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{169}
+@anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{16f}
 @section Attribute Enabled
 
 
@@ -9964,7 +10091,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{16a}
+@anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{170}
 @section Attribute Enum_Rep
 
 
@@ -10001,7 +10128,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{16b}
+@anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{171}
 @section Attribute Enum_Val
 
 
@@ -10024,7 +10151,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{16c}
+@anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{172}
 @section Attribute Epsilon
 
 
@@ -10036,8 +10163,8 @@ The @cite{Epsilon} attribute is provided for compatibility with Ada 83.  See
 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{16d}
+@node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
+@anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{173}
 @section Attribute Fast_Math
 
 
@@ -10047,8 +10174,26 @@ this attribute.
 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{16e}
+@node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
+@anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{174}
+@section Attribute Finalization_Size
+
+
+@geindex Finalization_Size
+
+The prefix of attribute @cite{Finalization_Size} must be an object or
+a non-class-wide type. This attribute returns the size of any hidden data
+reserved by the compiler to handle finalization-related actions. The type of
+the attribute is @cite{universal_integer}.
+
+@cite{Finalization_Size} yields a value of zero for a type with no controlled
+parts, an object whose type has no controlled parts, or an object of a
+class-wide type whose tag denotes a type with no controlled parts.
+
+Note that only heap-allocated objects contain finalization data.
+
+@node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
+@anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{175}
 @section Attribute Fixed_Value
 
 
@@ -10075,7 +10220,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{16f}
+@anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{176}
 @section Attribute From_Any
 
 
@@ -10085,7 +10230,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{170}
+@anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{177}
 @section Attribute Has_Access_Values
 
 
@@ -10103,7 +10248,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{171}
+@anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{178}
 @section Attribute Has_Discriminants
 
 
@@ -10119,7 +10264,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{172}
+@anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{179}
 @section Attribute Img
 
 
@@ -10149,7 +10294,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{173}
+@anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{17a}
 @section Attribute Integer_Value
 
 
@@ -10177,7 +10322,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{174}
+@anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{17b}
 @section Attribute Invalid_Value
 
 
@@ -10191,7 +10336,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{175}
+@anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{17c}
 @section Attribute Iterable
 
 
@@ -10200,7 +10345,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{176}
+@anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{17d}
 @section Attribute Large
 
 
@@ -10213,7 +10358,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{177}
+@anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{17e}
 @section Attribute Library_Level
 
 
@@ -10239,7 +10384,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{178}
+@anchor{gnat_rm/implementation_defined_attributes attribute-lock-free}@anchor{17f}
 @section Attribute Lock_Free
 
 
@@ -10249,7 +10394,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{179}
+@anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{180}
 @section Attribute Loop_Entry
 
 
@@ -10279,7 +10424,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{17a}
+@anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{181}
 @section Attribute Machine_Size
 
 
@@ -10289,7 +10434,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{17b}
+@anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{182}
 @section Attribute Mantissa
 
 
@@ -10302,7 +10447,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{17c}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{17d}
+@anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{183}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{184}
 @section Attribute Maximum_Alignment
 
 
@@ -10318,7 +10463,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{17e}
+@anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{185}
 @section Attribute Mechanism_Code
 
 
@@ -10349,7 +10494,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{17f}
+@anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{186}
 @section Attribute Null_Parameter
 
 
@@ -10374,7 +10519,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{134}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{180}
+@anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{139}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{187}
 @section Attribute Object_Size
 
 
@@ -10444,7 +10589,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{181}
+@anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{188}
 @section Attribute Old
 
 
@@ -10459,7 +10604,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{182}
+@anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{189}
 @section Attribute Passed_By_Reference
 
 
@@ -10475,7 +10620,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 nonstatic.
 
 @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
-@anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{183}
+@anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{18a}
 @section Attribute Pool_Address
 
 
@@ -10500,7 +10645,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 Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
-@anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{184}
+@anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{18b}
 @section Attribute Range_Length
 
 
@@ -10513,7 +10658,7 @@ 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 Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
-@anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{185}
+@anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{18c}
 @section Attribute Restriction_Set
 
 
@@ -10583,7 +10728,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{186}
+@anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{18d}
 @section Attribute Result
 
 
@@ -10596,7 +10741,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{187}
+@anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{18e}
 @section Attribute Safe_Emax
 
 
@@ -10609,7 +10754,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{188}
+@anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{18f}
 @section Attribute Safe_Large
 
 
@@ -10622,7 +10767,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{189}
+@anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{190}
 @section Attribute Safe_Small
 
 
@@ -10635,7 +10780,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 id4}@anchor{18a}@anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{140}
+@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{191}@anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{146}
 @section Attribute Scalar_Storage_Order
 
 
@@ -10754,7 +10899,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{da}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{18b}
+@anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{de}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{192}
 @section Attribute Simple_Storage_Pool
 
 
@@ -10817,7 +10962,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{18c}
+@anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{193}
 @section Attribute Small
 
 
@@ -10833,7 +10978,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{18d}
+@anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{194}
 @section Attribute Storage_Unit
 
 
@@ -10843,7 +10988,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{18e}
+@anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{195}
 @section Attribute Stub_Type
 
 
@@ -10867,7 +11012,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{18f}
+@anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{196}
 @section Attribute System_Allocator_Alignment
 
 
@@ -10884,7 +11029,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{190}
+@anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{197}
 @section Attribute Target_Name
 
 
@@ -10897,7 +11042,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{191}
+@anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{198}
 @section Attribute To_Address
 
 
@@ -10920,7 +11065,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{192}
+@anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{199}
 @section Attribute To_Any
 
 
@@ -10930,7 +11075,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{193}
+@anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{19a}
 @section Attribute Type_Class
 
 
@@ -10960,7 +11105,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{194}
+@anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{19b}
 @section Attribute Type_Key
 
 
@@ -10972,7 +11117,7 @@ about the type or subtype. This provides improved compatibility with
 other implementations that support this attribute.
 
 @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
-@anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{195}
+@anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{19c}
 @section Attribute TypeCode
 
 
@@ -10982,7 +11127,7 @@ This internal attribute is used for the generation of remote subprogram
 stubs in the context of the Distributed Systems Annex.
 
 @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
-@anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{196}
+@anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{19d}
 @section Attribute Unconstrained_Array
 
 
@@ -10996,7 +11141,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{197}
+@anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{19e}
 @section Attribute Universal_Literal_String
 
 
@@ -11024,7 +11169,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{198}
+@anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{19f}
 @section Attribute Unrestricted_Access
 
 
@@ -11211,7 +11356,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{199}
+@anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1a0}
 @section Attribute Update
 
 
@@ -11292,7 +11437,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{19a}
+@anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1a1}
 @section Attribute Valid_Scalars
 
 
@@ -11327,7 +11472,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{19b}
+@anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1a2}
 @section Attribute VADS_Size
 
 
@@ -11347,7 +11492,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 id6}@anchor{19c}@anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{14f}
+@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1a3}@anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{155}
 @section Attribute Value_Size
 
 
@@ -11361,7 +11506,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{19d}
+@anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1a4}
 @section Attribute Wchar_T_Size
 
 
@@ -11373,7 +11518,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{19e}
+@anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1a5}
 @section Attribute Word_Size
 
 
@@ -11384,7 +11529,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{19f}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1a0}
+@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{1a6}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1a7}
 @chapter Standard and Implementation Defined Restrictions
 
 
@@ -11413,7 +11558,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{1a1}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1a2}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1a8}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1a9}
 @section Partition-Wide Restrictions
 
 
@@ -11502,7 +11647,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{1a3}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1aa}
 @subsection Immediate_Reclamation
 
 
@@ -11514,7 +11659,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{1a4}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1ab}
 @subsection Max_Asynchronous_Select_Nesting
 
 
@@ -11526,7 +11671,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{1a5}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1ac}
 @subsection Max_Entry_Queue_Length
 
 
@@ -11547,7 +11692,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{1a6}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1ad}
 @subsection Max_Protected_Entries
 
 
@@ -11558,7 +11703,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{1a7}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1ae}
 @subsection Max_Select_Alternatives
 
 
@@ -11567,7 +11712,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{1a8}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1af}
 @subsection Max_Storage_At_Blocking
 
 
@@ -11578,7 +11723,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{1a9}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1b0}
 @subsection Max_Task_Entries
 
 
@@ -11591,7 +11736,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{1aa}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1b1}
 @subsection Max_Tasks
 
 
@@ -11604,7 +11749,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{1ab}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1b2}
 @subsection No_Abort_Statements
 
 
@@ -11614,7 +11759,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{1ac}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1b3}
 @subsection No_Access_Parameter_Allocators
 
 
@@ -11625,7 +11770,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{1ad}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1b4}
 @subsection No_Access_Subprograms
 
 
@@ -11635,7 +11780,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{1ae}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1b5}
 @subsection No_Allocators
 
 
@@ -11645,7 +11790,7 @@ declarations of access-to-subprogram types.
 occurrences of an allocator.
 
 @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1af}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1b6}
 @subsection No_Anonymous_Allocators
 
 
@@ -11655,7 +11800,7 @@ occurrences of an allocator.
 occurrences of an allocator of anonymous access type.
 
 @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1b0}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1b7}
 @subsection No_Asynchronous_Control
 
 
@@ -11665,7 +11810,7 @@ occurrences of an allocator of anonymous access type.
 dependences on the predefined package Asynchronous_Task_Control.
 
 @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1b1}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1b8}
 @subsection No_Calendar
 
 
@@ -11675,7 +11820,7 @@ dependences on the predefined package Asynchronous_Task_Control.
 dependences on package Calendar.
 
 @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1b2}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1b9}
 @subsection No_Coextensions
 
 
@@ -11685,7 +11830,7 @@ dependences on package 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{1b3}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1ba}
 @subsection No_Default_Initialization
 
 
@@ -11702,7 +11847,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{1b4}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1bb}
 @subsection No_Delay
 
 
@@ -11712,7 +11857,7 @@ initializer (including the case of OUT scalar parameters).
 delay statements and no semantic 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{1b5}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1bc}
 @subsection No_Dependence
 
 
@@ -11722,7 +11867,7 @@ delay statements and no semantic dependences on package Calendar.
 dependences 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{1b6}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1bd}
 @subsection No_Direct_Boolean_Operators
 
 
@@ -11735,7 +11880,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{1b7}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1be}
 @subsection No_Dispatch
 
 
@@ -11745,7 +11890,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{1b8}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1bf}
 @subsection No_Dispatching_Calls
 
 
@@ -11806,7 +11951,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{1b9}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1c0}
 @subsection No_Dynamic_Attachment
 
 
@@ -11825,7 +11970,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{1ba}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1c1}
 @subsection No_Dynamic_Priorities
 
 
@@ -11834,7 +11979,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{1bb}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1c2}
 @subsection No_Entry_Calls_In_Elaboration_Code
 
 
@@ -11846,7 +11991,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{1bc}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1c3}
 @subsection No_Enumeration_Maps
 
 
@@ -11857,7 +12002,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{1bd}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1c4}
 @subsection No_Exception_Handlers
 
 
@@ -11882,7 +12027,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{1be}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1c5}
 @subsection No_Exception_Propagation
 
 
@@ -11899,7 +12044,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{1bf}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1c6}
 @subsection No_Exception_Registration
 
 
@@ -11913,7 +12058,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{1c0}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1c7}
 @subsection No_Exceptions
 
 
@@ -11923,7 +12068,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{1c1}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1c8}
 @subsection No_Finalization
 
 
@@ -11964,7 +12109,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{1c2}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1c9}
 @subsection No_Fixed_Point
 
 
@@ -11974,7 +12119,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{1c3}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1ca}
 @subsection No_Floating_Point
 
 
@@ -11984,7 +12129,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{1c4}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1cb}
 @subsection No_Implicit_Conditionals
 
 
@@ -12000,7 +12145,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{1c5}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1cc}
 @subsection No_Implicit_Dynamic_Code
 
 
@@ -12030,7 +12175,7 @@ foreign-language convention; primitive operations of nested tagged
 types.
 
 @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1c6}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1cd}
 @subsection No_Implicit_Heap_Allocations
 
 
@@ -12039,7 +12184,7 @@ types.
 [RM D.7] No constructs are allowed to cause implicit heap allocation.
 
 @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1c7}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1ce}
 @subsection No_Implicit_Protected_Object_Allocations
 
 
@@ -12049,7 +12194,7 @@ types.
 protected object.
 
 @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1c8}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1cf}
 @subsection No_Implicit_Task_Allocations
 
 
@@ -12058,7 +12203,7 @@ protected object.
 [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
 
 @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1c9}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1d0}
 @subsection No_Initialize_Scalars
 
 
@@ -12070,7 +12215,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{1ca}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1d1}
 @subsection No_IO
 
 
@@ -12081,7 +12226,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{1cb}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1d2}
 @subsection No_Local_Allocators
 
 
@@ -12092,7 +12237,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{1cc}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1d3}
 @subsection No_Local_Protected_Objects
 
 
@@ -12102,7 +12247,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{1cd}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1d4}
 @subsection No_Local_Timing_Events
 
 
@@ -12112,7 +12257,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{1ce}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{1d5}
 @subsection No_Long_Long_Integers
 
 
@@ -12124,7 +12269,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{1cf}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{1d6}
 @subsection No_Multiple_Elaboration
 
 
@@ -12141,7 +12286,7 @@ 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{1d0}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{1d7}
 @subsection No_Nested_Finalization
 
 
@@ -12150,7 +12295,7 @@ 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{1d1}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{1d8}
 @subsection No_Protected_Type_Allocators
 
 
@@ -12160,7 +12305,7 @@ 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{1d2}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{1d9}
 @subsection No_Protected_Types
 
 
@@ -12170,7 +12315,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{1d3}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{1da}
 @subsection No_Recursion
 
 
@@ -12180,7 +12325,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{1d4}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{1db}
 @subsection No_Reentrancy
 
 
@@ -12190,7 +12335,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{1d5}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{1dc}
 @subsection No_Relative_Delay
 
 
@@ -12201,7 +12346,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{1d6}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{1dd}
 @subsection No_Requeue_Statements
 
 
@@ -12219,7 +12364,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{1d7}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{1de}
 @subsection No_Secondary_Stack
 
 
@@ -12228,10 +12373,11 @@ warnings on oNobsolescent features are activated).
 [GNAT] This restriction ensures at compile time that the generated code
 does not contain any reference to the secondary stack.  The secondary
 stack is used to implement functions returning unconstrained objects
-(arrays or records) on some targets.
+(arrays or records) on some targets. Suppresses the allocation of
+secondary stacks for tasks (excluding the environment task) at run time.
 
 @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{1d8}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{1df}
 @subsection No_Select_Statements
 
 
@@ -12241,7 +12387,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{1d9}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{1e0}
 @subsection No_Specific_Termination_Handlers
 
 
@@ -12251,7 +12397,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{1da}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{1e1}
 @subsection No_Specification_of_Aspect
 
 
@@ -12262,7 +12408,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{1db}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{1e2}
 @subsection No_Standard_Allocators_After_Elaboration
 
 
@@ -12274,7 +12420,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{1dc}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{1e3}
 @subsection No_Standard_Storage_Pools
 
 
@@ -12286,7 +12432,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{1dd}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{1e4}
 @subsection No_Stream_Optimizations
 
 
@@ -12299,7 +12445,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{1de}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{1e5}
 @subsection No_Streams
 
 
@@ -12320,7 +12466,7 @@ unit declaring a tagged type should be compiled with the restriction,
 though this is not required.
 
 @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Streams,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{1df}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{1e6}
 @subsection No_Task_Allocators
 
 
@@ -12330,7 +12476,7 @@ though this is not required.
 or types containing task subcomponents.
 
 @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{1e0}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{1e7}
 @subsection No_Task_At_Interrupt_Priority
 
 
@@ -12342,7 +12488,7 @@ a consequence, the tasks are always created with a priority below
 that an interrupt priority.
 
 @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1e1}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1e8}
 @subsection No_Task_Attributes_Package
 
 
@@ -12359,7 +12505,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{1e2}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{1e9}
 @subsection No_Task_Hierarchy
 
 
@@ -12369,7 +12515,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{1e3}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{1ea}
 @subsection No_Task_Termination
 
 
@@ -12378,7 +12524,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{1e4}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{1eb}
 @subsection No_Tasking
 
 
@@ -12391,7 +12537,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{1e5}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{1ec}
 @subsection No_Terminate_Alternatives
 
 
@@ -12400,7 +12546,7 @@ binder.
 [RM D.7] There are no selective accepts with terminate alternatives.
 
 @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{1e6}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{1ed}
 @subsection No_Unchecked_Access
 
 
@@ -12410,7 +12556,7 @@ binder.
 occurrences of the Unchecked_Access attribute.
 
 @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{1e7}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{1ee}
 @subsection No_Unchecked_Conversion
 
 
@@ -12420,7 +12566,7 @@ occurrences of the Unchecked_Access attribute.
 dependences on the predefined generic function Unchecked_Conversion.
 
 @node No_Unchecked_Deallocation,No_Use_Of_Entity,No_Unchecked_Conversion,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{1e8}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{1ef}
 @subsection No_Unchecked_Deallocation
 
 
@@ -12430,7 +12576,7 @@ dependences on the predefined generic function Unchecked_Conversion.
 dependences on the predefined generic procedure Unchecked_Deallocation.
 
 @node No_Use_Of_Entity,Pure_Barriers,No_Unchecked_Deallocation,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{1e9}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{1f0}
 @subsection No_Use_Of_Entity
 
 
@@ -12450,7 +12596,7 @@ No_Use_Of_Entity => Ada.Text_IO.Put_Line
 @end example
 
 @node Pure_Barriers,Simple_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{1ea}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{1f1}
 @subsection Pure_Barriers
 
 
@@ -12499,7 +12645,7 @@ but still ensures absence of side effects, exceptions, and recursion
 during the evaluation of the barriers.
 
 @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{1eb}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{1f2}
 @subsection Simple_Barriers
 
 
@@ -12518,7 +12664,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{1ec}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{1f3}
 @subsection Static_Priorities
 
 
@@ -12529,7 +12675,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{1ed}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{1f4}
 @subsection Static_Storage_Size
 
 
@@ -12539,7 +12685,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{1ee}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{1ef}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{1f5}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{1f6}
 @section Program Unit Level Restrictions
 
 
@@ -12568,7 +12714,7 @@ other compilation units in the partition.
 @end menu
 
 @node No_Elaboration_Code,No_Dynamic_Sized_Objects,,Program Unit Level Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{1f0}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{1f7}
 @subsection No_Elaboration_Code
 
 
@@ -12624,7 +12770,7 @@ associated with the unit. This counter is typically used to check for access
 before elaboration and to control multiple elaboration attempts.
 
 @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Elaboration_Code,Program Unit Level Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{1f1}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{1f8}
 @subsection No_Dynamic_Sized_Objects
 
 
@@ -12642,7 +12788,7 @@ access discriminants. It is often a good idea to combine this restriction
 with No_Secondary_Stack.
 
 @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{1f2}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{1f9}
 @subsection No_Entry_Queue
 
 
@@ -12655,7 +12801,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{1f3}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{1fa}
 @subsection No_Implementation_Aspect_Specifications
 
 
@@ -12666,7 +12812,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{1f4}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{1fb}
 @subsection No_Implementation_Attributes
 
 
@@ -12678,7 +12824,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{1f5}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{1fc}
 @subsection No_Implementation_Identifiers
 
 
@@ -12689,7 +12835,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{1f6}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{1fd}
 @subsection No_Implementation_Pragmas
 
 
@@ -12700,7 +12846,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{1f7}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{1fe}
 @subsection No_Implementation_Restrictions
 
 
@@ -12712,7 +12858,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{1f8}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{1ff}
 @subsection No_Implementation_Units
 
 
@@ -12723,7 +12869,7 @@ mention in the context clause of any implementation-defined descendants
 of packages Ada, Interfaces, or System.
 
 @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{1f9}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{200}
 @subsection No_Implicit_Aliasing
 
 
@@ -12738,7 +12884,7 @@ to be aliased, and in such cases, it can always be replaced by
 the standard attribute Unchecked_Access which is preferable.
 
 @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{1fa}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{201}
 @subsection No_Implicit_Loops
 
 
@@ -12755,7 +12901,7 @@ arrays larger than about 5000 scalar components. Note that if this restriction
 is set in the spec of a package, it will not apply to its body.
 
 @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
-@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{1fb}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{202}
 @subsection No_Obsolescent_Features
 
 
@@ -12765,7 +12911,7 @@ is set in the spec of a package, it will not apply to its body.
 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{1fc}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{203}
 @subsection No_Wide_Characters
 
 
@@ -12779,7 +12925,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{1fd}
+@anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{204}
 @subsection SPARK_05
 
 
@@ -13138,7 +13284,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{1fe}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}@anchor{gnat_rm/implementation_advice id1}@anchor{1ff}
+@anchor{gnat_rm/implementation_advice doc}@anchor{205}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}@anchor{gnat_rm/implementation_advice id1}@anchor{206}
 @chapter Implementation Advice
 
 
@@ -13235,7 +13381,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{200}
+@anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{207}
 @section RM 1.1.3(20): Error Detection
 
 
@@ -13252,7 +13398,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{201}
+@anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{208}
 @section RM 1.1.3(31): Child Units
 
 
@@ -13268,7 +13414,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{202}
+@anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{209}
 @section RM 1.1.5(12): Bounded Errors
 
 
@@ -13285,7 +13431,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{203}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{204}
+@anchor{gnat_rm/implementation_advice id2}@anchor{20a}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{20b}
 @section RM 2.8(16): Pragmas
 
 
@@ -13398,7 +13544,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{205}
+@anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{20c}
 @section RM 2.8(17-19): Pragmas
 
 
@@ -13419,14 +13565,14 @@ replacing @cite{library_items}."
 @end itemize
 @end quotation
 
-See @ref{204,,RM 2.8(16); Pragmas}.
+See @ref{20b,,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{206}
+@anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{20d}
 @section RM 3.5.2(5): Alternative Character Sets
 
 
@@ -13454,7 +13600,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{207}
+@anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{20e}
 @section RM 3.5.4(28): Integer Types
 
 
@@ -13473,7 +13619,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{208}
+@anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{20f}
 @section RM 3.5.4(29): Integer Types
 
 
@@ -13489,7 +13635,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{209}
+@anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{210}
 @section RM 3.5.5(8): Enumeration Values
 
 
@@ -13509,7 +13655,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{20a}
+@anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{211}
 @section RM 3.5.7(17): Float Types
 
 
@@ -13539,7 +13685,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{20b}
+@anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{212}
 @section RM 3.6.2(11): Multidimensional Arrays
 
 
@@ -13557,7 +13703,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{20c}
+@anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{213}
 @section RM 9.6(30-31): Duration'Small
 
 
@@ -13578,7 +13724,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{20d}
+@anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{214}
 @section RM 10.2.1(12): Consistent Representation
 
 
@@ -13600,7 +13746,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{20e}
+@anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{215}
 @section RM 11.4.1(19): Exception Information
 
 
@@ -13631,7 +13777,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{20f}
+@anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{216}
 @section RM 11.5(28): Suppression of Checks
 
 
@@ -13646,7 +13792,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{210}
+@anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{217}
 @section RM 13.1 (21-24): Representation Clauses
 
 
@@ -13695,7 +13841,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{211}
+@anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{218}
 @section RM 13.2(6-8): Packed Types
 
 
@@ -13734,7 +13880,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{212}
+@anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{219}
 @section RM 13.3(14-19): Address Clauses
 
 
@@ -13787,7 +13933,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{213}
+@anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{21a}
 @section RM 13.3(29-35): Alignment Clauses
 
 
@@ -13844,7 +13990,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{214}
+@anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{21b}
 @section RM 13.3(42-43): Size Clauses
 
 
@@ -13862,7 +14008,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{215}
+@anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{21c}
 @section RM 13.3(50-56): Size Clauses
 
 
@@ -13913,7 +14059,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{216}
+@anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{21d}
 @section RM 13.3(71-73): Component Size Clauses
 
 
@@ -13947,7 +14093,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{217}
+@anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{21e}
 @section RM 13.4(9-10): Enumeration Representation Clauses
 
 
@@ -13969,7 +14115,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{218}
+@anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{21f}
 @section RM 13.5.1(17-22): Record Representation Clauses
 
 
@@ -14029,7 +14175,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{219}
+@anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{220}
 @section RM 13.5.2(5): Storage Place Attributes
 
 
@@ -14049,7 +14195,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{21a}
+@anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{221}
 @section RM 13.5.3(7-8): Bit Ordering
 
 
@@ -14069,7 +14215,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{21b}
+@anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{222}
 @section RM 13.7(37): Address as Private
 
 
@@ -14087,7 +14233,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{21c}
+@anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{223}
 @section RM 13.7.1(16): Address Operations
 
 
@@ -14105,7 +14251,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{21d}
+@anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{224}
 @section RM 13.9(14-17): Unchecked Conversion
 
 
@@ -14149,7 +14295,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{21e}
+@anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{225}
 @section RM 13.11(23-25): Implicit Heap Usage
 
 
@@ -14200,7 +14346,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{21f}
+@anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{226}
 @section RM 13.11.2(17): Unchecked Deallocation
 
 
@@ -14215,7 +14361,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{220}
+@anchor{gnat_rm/implementation_advice rm-13-13-2-17-stream-oriented-attributes}@anchor{227}
 @section RM 13.13.2(17): Stream Oriented Attributes
 
 
@@ -14270,7 +14416,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{221}
+@anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{228}
 @section RM A.1(52): Names of Predefined Numeric Types
 
 
@@ -14288,7 +14434,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{222}
+@anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{229}
 @section RM A.3.2(49): @cite{Ada.Characters.Handling}
 
 
@@ -14305,7 +14451,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{223}
+@anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{22a}
 @section RM A.4.4(106): Bounded-Length String Handling
 
 
@@ -14320,7 +14466,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{224}
+@anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{22b}
 @section RM A.5.2(46-47): Random Number Generation
 
 
@@ -14349,7 +14495,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{225}
+@anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{22c}
 @section RM A.10.7(23): @cite{Get_Immediate}
 
 
@@ -14373,7 +14519,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{226}
+@anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{22d}
 @section RM B.1(39-41): Pragma @cite{Export}
 
 
@@ -14421,7 +14567,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{227}
+@anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{22e}
 @section RM B.2(12-13): Package @cite{Interfaces}
 
 
@@ -14451,7 +14597,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{228}
+@anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{22f}
 @section RM B.3(63-71): Interfacing with C
 
 
@@ -14539,7 +14685,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{229}
+@anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{230}
 @section RM B.4(95-98): Interfacing with COBOL
 
 
@@ -14580,7 +14726,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{22a}
+@anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{231}
 @section RM B.5(22-26): Interfacing with Fortran
 
 
@@ -14631,7 +14777,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{22b}
+@anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{232}
 @section RM C.1(3-5): Access to Machine Operations
 
 
@@ -14666,7 +14812,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{22c}
+@anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{233}
 @section RM C.1(10-16): Access to Machine Operations
 
 
@@ -14727,7 +14873,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{22d}
+@anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{234}
 @section RM C.3(28): Interrupt Support
 
 
@@ -14745,7 +14891,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{22e}
+@anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{235}
 @section RM C.3.1(20-21): Protected Procedure Handlers
 
 
@@ -14771,7 +14917,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{22f}
+@anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{236}
 @section RM C.3.2(25): Package @cite{Interrupts}
 
 
@@ -14789,7 +14935,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{230}
+@anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{237}
 @section RM C.4(14): Pre-elaboration Requirements
 
 
@@ -14805,7 +14951,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{231}
+@anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{238}
 @section RM C.5(8): Pragma @cite{Discard_Names}
 
 
@@ -14823,7 +14969,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{232}
+@anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{239}
 @section RM C.7.2(30): The Package Task_Attributes
 
 
@@ -14844,7 +14990,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{233}
+@anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{23a}
 @section RM D.3(17): Locking Policies
 
 
@@ -14861,7 +15007,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{234}
+@anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{23b}
 @section RM D.4(16): Entry Queuing Policies
 
 
@@ -14876,7 +15022,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{235}
+@anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{23c}
 @section RM D.6(9-10): Preemptive Abort
 
 
@@ -14902,7 +15048,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{236}
+@anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{23d}
 @section RM D.7(21): Tasking Restrictions
 
 
@@ -14921,7 +15067,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{237}
+@anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{23e}
 @section RM D.8(47-49): Monotonic Time
 
 
@@ -14956,7 +15102,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{238}
+@anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{23f}
 @section RM E.5(28-29): Partition Communication Subsystem
 
 
@@ -14984,7 +15130,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{239}
+@anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{240}
 @section RM F(7): COBOL Support
 
 
@@ -15004,7 +15150,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{23a}
+@anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{241}
 @section RM F.1(2): Decimal Radix Support
 
 
@@ -15020,7 +15166,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{23b}
+@anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{242}
 @section RM G: Numerics
 
 
@@ -15040,7 +15186,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{23c}
+@anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{243}
 @section RM G.1.1(56-58): Complex Types
 
 
@@ -15102,7 +15248,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{23d}
+@anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{244}
 @section RM G.1.2(49): Complex Elementary Functions
 
 
@@ -15124,7 +15270,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{23e}
+@anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{245}
 @section RM G.2.4(19): Accuracy Requirements
 
 
@@ -15148,7 +15294,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{23f}
+@anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{246}
 @section RM G.2.6(15): Complex Arithmetic Accuracy
 
 
@@ -15166,7 +15312,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{240}
+@anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{247}
 @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
 
 
@@ -15181,7 +15327,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{241}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{242}
+@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}@anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{248}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{249}
 @chapter Implementation Defined Characteristics
 
 
@@ -16376,7 +16522,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{243,,GNAT.Regexp (g-regexp.ads)}.
+See @ref{24a,,GNAT.Regexp (g-regexp.ads)}.
 
 
 @itemize *
@@ -17418,7 +17564,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{244}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{245}
+@anchor{gnat_rm/intrinsic_subprograms doc}@anchor{24b}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{24c}
 @chapter Intrinsic Subprograms
 
 
@@ -17455,7 +17601,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{246}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{247}
+@anchor{gnat_rm/intrinsic_subprograms id2}@anchor{24d}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{24e}
 @section Intrinsic Operators
 
 
@@ -17486,7 +17632,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{248}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{249}
+@anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{24f}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{250}
 @section Compilation_Date
 
 
@@ -17500,7 +17646,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{24a}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{24b}
+@anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{251}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{252}
 @section Compilation_Time
 
 
@@ -17514,7 +17660,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{24c}@anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{24d}
+@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{253}@anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{254}
 @section Enclosing_Entity
 
 
@@ -17528,7 +17674,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{24e}@anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{24f}
+@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{255}@anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{256}
 @section Exception_Information
 
 
@@ -17542,7 +17688,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{250}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{251}
+@anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{257}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{258}
 @section Exception_Message
 
 
@@ -17556,7 +17702,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{252}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{253}
+@anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{259}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{25a}
 @section Exception_Name
 
 
@@ -17570,7 +17716,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{254}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{255}
+@anchor{gnat_rm/intrinsic_subprograms file}@anchor{25b}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{25c}
 @section File
 
 
@@ -17584,7 +17730,7 @@ application program should simply call the function
 file.
 
 @node Line,Shifts and Rotates,File,Intrinsic Subprograms
-@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{256}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{257}
+@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{25d}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{25e}
 @section Line
 
 
@@ -17598,7 +17744,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{258}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{259}
+@anchor{gnat_rm/intrinsic_subprograms id11}@anchor{25f}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{260}
 @section Shifts and Rotates
 
 
@@ -17637,7 +17783,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{25a}@anchor{gnat_rm/intrinsic_subprograms id12}@anchor{25b}
+@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{261}@anchor{gnat_rm/intrinsic_subprograms id12}@anchor{262}
 @section Source_Location
 
 
@@ -17651,7 +17797,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{25c}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{25d}
+@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}@anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{263}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{264}
 @chapter Representation Clauses and Pragmas
 
 
@@ -17697,7 +17843,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{25e}@anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{25f}
+@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{265}@anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{266}
 @section Alignment Clauses
 
 
@@ -17717,7 +17863,7 @@ For elementary 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{17c,,Attribute Maximum_Alignment}.)
+@cite{Standard'Maximum_Alignment}; see @ref{183,,Attribute Maximum_Alignment}.)
 
 @geindex Maximum_Alignment attribute
 
@@ -17826,7 +17972,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{260}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{261}
+@anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{267}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{268}
 @section Size Clauses
 
 
@@ -17903,7 +18049,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{262}@anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{263}
+@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{269}@anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{26a}
 @section Storage_Size Clauses
 
 
@@ -17976,7 +18122,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{264}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{265}
+@anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{26b}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{26c}
 @section Size of Variant Record Objects
 
 
@@ -18086,7 +18232,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{266}@anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{267}
+@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{26d}@anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{26e}
 @section Biased Representation
 
 
@@ -18124,7 +18270,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{268}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{269}
+@anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{26f}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{270}
 @section Value_Size and Object_Size Clauses
 
 
@@ -18431,7 +18577,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{26a}@anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{26b}
+@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{271}@anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{272}
 @section Component_Size Clauses
 
 
@@ -18478,7 +18624,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{26c}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{26d}
+@anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{273}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{274}
 @section Bit_Order Clauses
 
 
@@ -18584,7 +18730,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{26e}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{26f}
+@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{275}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{276}
 @section Effect of Bit_Order on Byte Ordering
 
 
@@ -18841,7 +18987,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{270}@anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{271}
+@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{277}@anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{278}
 @section Pragma Pack for Arrays
 
 
@@ -18958,7 +19104,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{272}@anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{273}
+@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{279}@anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{27a}
 @section Pragma Pack for Records
 
 
@@ -19043,7 +19189,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{274}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{275}
+@anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{27b}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{27c}
 @section Record Representation Clauses
 
 
@@ -19128,7 +19274,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{276}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{277}
+@anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{27d}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{27e}
 @section Handling of Records with Holes
 
 
@@ -19205,7 +19351,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{278}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{279}
+@anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{27f}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{280}
 @section Enumeration Clauses
 
 
@@ -19248,7 +19394,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{27a}@anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{27b}
+@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{281}@anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{282}
 @section Address Clauses
 
 
@@ -19578,7 +19724,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{27c}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{27d}
+@anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{283}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{284}
 @section Use of Address Clauses for Memory-Mapped I/O
 
 
@@ -19636,7 +19782,7 @@ provides the pragma @cite{Volatile_Full_Access} which can be used in lieu of
 pragma @cite{Atomic} and will give the additional guarantee.
 
 @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{27e}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{27f}
+@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{285}@anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{286}
 @section Effect of Convention on Representation
 
 
@@ -19714,7 +19860,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{280}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{281}
+@anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{287}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{288}
 @section Conventions and Anonymous Access Types
 
 
@@ -19790,7 +19936,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{282}@anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{283}
+@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{289}@anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{28a}
 @section Determining the Representations chosen by GNAT
 
 
@@ -19942,7 +20088,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{284}@anchor{gnat_rm/standard_library_routines id1}@anchor{285}
+@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}@anchor{gnat_rm/standard_library_routines doc}@anchor{28b}@anchor{gnat_rm/standard_library_routines id1}@anchor{28c}
 @chapter Standard Library Routines
 
 
@@ -20765,7 +20911,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{286}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{287}
+@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{28d}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{28e}
 @chapter The Implementation of Standard I/O
 
 
@@ -20817,7 +20963,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{288}@anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{289}
+@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{28f}@anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{290}
 @section Standard I/O Packages
 
 
@@ -20888,7 +21034,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{28a}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{28b}
+@anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{291}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{292}
 @section FORM Strings
 
 
@@ -20914,7 +21060,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{28c}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{28d}
+@anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{293}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{294}
 @section Direct_IO
 
 
@@ -20934,7 +21080,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{28e}@anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{28f}
+@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{295}@anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{296}
 @section Sequential_IO
 
 
@@ -20981,7 +21127,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{290}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{291}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{297}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{298}
 @section Text_IO
 
 
@@ -21064,7 +21210,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{292}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{293}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{299}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{29a}
 @subsection Stream Pointer Positioning
 
 
@@ -21100,7 +21246,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{294}@anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{295}
+@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{29b}@anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{29c}
 @subsection Reading and Writing Non-Regular Files
 
 
@@ -21151,7 +21297,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{296}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{297}
+@anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{29d}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{29e}
 @subsection Get_Immediate
 
 
@@ -21169,7 +21315,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{298}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{299}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{29f}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2a0}
 @subsection Treating Text_IO Files as Streams
 
 
@@ -21185,7 +21331,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{29a}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{29b}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2a1}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2a2}
 @subsection Text_IO Extensions
 
 
@@ -21213,7 +21359,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{29c}@anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{29d}
+@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2a3}@anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2a4}
 @subsection Text_IO Facilities for Unbounded Strings
 
 
@@ -21261,7 +21407,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{29e}@anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{29f}
+@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2a5}@anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2a6}
 @section Wide_Text_IO
 
 
@@ -21508,12 +21654,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{2a0}@anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2a1}
+@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2a7}@anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2a8}
 @subsection Stream Pointer Positioning
 
 
 @cite{Ada.Wide_Text_IO} is similar to @cite{Ada.Text_IO} in its handling
-of stream pointer positioning (@ref{291,,Text_IO}).  There is one additional
+of stream pointer positioning (@ref{298,,Text_IO}).  There is one additional
 case:
 
 If @cite{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
@@ -21532,7 +21678,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{2a2}@anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2a3}
+@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2a9}@anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2aa}
 @subsection Reading and Writing Non-Regular Files
 
 
@@ -21543,7 +21689,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{2a4}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2a5}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2ab}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2ac}
 @section Wide_Wide_Text_IO
 
 
@@ -21712,12 +21858,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{2a6}@anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2a7}
+@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2ad}@anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2ae}
 @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{291,,Text_IO}).  There is one additional
+of stream pointer positioning (@ref{298,,Text_IO}).  There is one additional
 case:
 
 If @cite{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
@@ -21736,7 +21882,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{2a8}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2a9}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2af}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2b0}
 @subsection Reading and Writing Non-Regular Files
 
 
@@ -21747,7 +21893,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{2aa}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2ab}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2b1}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2b2}
 @section Stream_IO
 
 
@@ -21769,7 +21915,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{2ac}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2ad}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2b3}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2b4}
 @section Text Translation
 
 
@@ -21803,7 +21949,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{2ae}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2af}
+@anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2b5}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2b6}
 @section Shared Files
 
 
@@ -21866,7 +22012,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{2b0}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2b1}
+@anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2b7}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2b8}
 @section Filenames encoding
 
 
@@ -21906,7 +22052,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{2b2}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2b3}
+@anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2b9}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2ba}
 @section File content encoding
 
 
@@ -21939,7 +22085,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{2b4}@anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2b5}
+@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2bb}@anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2bc}
 @section Open Modes
 
 
@@ -22042,7 +22188,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{2b6}@anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2b7}
+@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2bd}@anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2be}
 @section Operations on C Streams
 
 
@@ -22202,7 +22348,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{2b8}@anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2b9}
+@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2bf}@anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2c0}
 @section Interfacing to C Streams
 
 
@@ -22295,7 +22441,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{2ba}@anchor{gnat_rm/the_gnat_library id1}@anchor{2bb}
+@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}@anchor{gnat_rm/the_gnat_library doc}@anchor{2c1}@anchor{gnat_rm/the_gnat_library id1}@anchor{2c2}
 @chapter The GNAT Library
 
 
@@ -22463,6 +22609,7 @@ of GNAT, and will generate a warning message.
 * Interfaces.C.Streams (i-cstrea.ads): Interfaces C Streams i-cstrea ads. 
 * Interfaces.Packed_Decimal (i-pacdec.ads): Interfaces Packed_Decimal i-pacdec ads. 
 * Interfaces.VxWorks (i-vxwork.ads): Interfaces VxWorks i-vxwork ads. 
+* Interfaces.VxWorks.Int_Connection (i-vxinco.ads): Interfaces VxWorks Int_Connection i-vxinco ads. 
 * Interfaces.VxWorks.IO (i-vxwoio.ads): Interfaces VxWorks IO i-vxwoio ads. 
 * System.Address_Image (s-addima.ads): System Address_Image s-addima ads. 
 * System.Assertions (s-assert.ads): System Assertions s-assert ads. 
@@ -22483,7 +22630,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{2bc}@anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2bd}
+@anchor{gnat_rm/the_gnat_library id2}@anchor{2c3}@anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2c4}
 @section @cite{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
 
 
@@ -22500,7 +22647,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{2be}@anchor{gnat_rm/the_gnat_library id3}@anchor{2bf}
+@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2c5}@anchor{gnat_rm/the_gnat_library id3}@anchor{2c6}
 @section @cite{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
 
 
@@ -22517,7 +22664,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{2c0}@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila1-ads}@anchor{2c1}
+@anchor{gnat_rm/the_gnat_library id4}@anchor{2c7}@anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila1-ads}@anchor{2c8}
 @section @cite{Ada.Characters.Wide_Latin_9} (@code{a-cwila1.ads})
 
 
@@ -22534,7 +22681,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{2c2}@anchor{gnat_rm/the_gnat_library id5}@anchor{2c3}
+@anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2c9}@anchor{gnat_rm/the_gnat_library id5}@anchor{2ca}
 @section @cite{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
 
 
@@ -22551,7 +22698,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{2c4}@anchor{gnat_rm/the_gnat_library id6}@anchor{2c5}
+@anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2cb}@anchor{gnat_rm/the_gnat_library id6}@anchor{2cc}
 @section @cite{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
 
 
@@ -22568,7 +22715,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{2c6}@anchor{gnat_rm/the_gnat_library ada-containers-formal-doubly-linked-lists-a-cfdlli-ads}@anchor{2c7}
+@anchor{gnat_rm/the_gnat_library id7}@anchor{2cd}@anchor{gnat_rm/the_gnat_library ada-containers-formal-doubly-linked-lists-a-cfdlli-ads}@anchor{2ce}
 @section @cite{Ada.Containers.Formal_Doubly_Linked_Lists} (@code{a-cfdlli.ads})
 
 
@@ -22587,7 +22734,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{2c8}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-maps-a-cfhama-ads}@anchor{2c9}
+@anchor{gnat_rm/the_gnat_library id8}@anchor{2cf}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-maps-a-cfhama-ads}@anchor{2d0}
 @section @cite{Ada.Containers.Formal_Hashed_Maps} (@code{a-cfhama.ads})
 
 
@@ -22606,7 +22753,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{2ca}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-sets-a-cfhase-ads}@anchor{2cb}
+@anchor{gnat_rm/the_gnat_library id9}@anchor{2d1}@anchor{gnat_rm/the_gnat_library ada-containers-formal-hashed-sets-a-cfhase-ads}@anchor{2d2}
 @section @cite{Ada.Containers.Formal_Hashed_Sets} (@code{a-cfhase.ads})
 
 
@@ -22625,7 +22772,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{2cc}@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-maps-a-cforma-ads}@anchor{2cd}
+@anchor{gnat_rm/the_gnat_library id10}@anchor{2d3}@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-maps-a-cforma-ads}@anchor{2d4}
 @section @cite{Ada.Containers.Formal_Ordered_Maps} (@code{a-cforma.ads})
 
 
@@ -22644,7 +22791,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{2ce}@anchor{gnat_rm/the_gnat_library id11}@anchor{2cf}
+@anchor{gnat_rm/the_gnat_library ada-containers-formal-ordered-sets-a-cforse-ads}@anchor{2d5}@anchor{gnat_rm/the_gnat_library id11}@anchor{2d6}
 @section @cite{Ada.Containers.Formal_Ordered_Sets} (@code{a-cforse.ads})
 
 
@@ -22663,7 +22810,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{2d0}@anchor{gnat_rm/the_gnat_library ada-containers-formal-vectors-a-cofove-ads}@anchor{2d1}
+@anchor{gnat_rm/the_gnat_library id12}@anchor{2d7}@anchor{gnat_rm/the_gnat_library ada-containers-formal-vectors-a-cofove-ads}@anchor{2d8}
 @section @cite{Ada.Containers.Formal_Vectors} (@code{a-cofove.ads})
 
 
@@ -22682,7 +22829,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{2d2}@anchor{gnat_rm/the_gnat_library ada-containers-formal-indefinite-vectors-a-cfinve-ads}@anchor{2d3}
+@anchor{gnat_rm/the_gnat_library id13}@anchor{2d9}@anchor{gnat_rm/the_gnat_library ada-containers-formal-indefinite-vectors-a-cfinve-ads}@anchor{2da}
 @section @cite{Ada.Containers.Formal_Indefinite_Vectors} (@code{a-cfinve.ads})
 
 
@@ -22701,7 +22848,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{2d4}@anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2d5}
+@anchor{gnat_rm/the_gnat_library id14}@anchor{2db}@anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2dc}
 @section @cite{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
 
 
@@ -22713,7 +22860,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{2d6}@anchor{gnat_rm/the_gnat_library id15}@anchor{2d7}
+@anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{2dd}@anchor{gnat_rm/the_gnat_library id15}@anchor{2de}
 @section @cite{Ada.Command_Line.Environment} (@code{a-colien.ads})
 
 
@@ -22726,7 +22873,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{2d8}@anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{2d9}
+@anchor{gnat_rm/the_gnat_library id16}@anchor{2df}@anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{2e0}
 @section @cite{Ada.Command_Line.Remove} (@code{a-colire.ads})
 
 
@@ -22744,7 +22891,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{2da}@anchor{gnat_rm/the_gnat_library id17}@anchor{2db}
+@anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{2e1}@anchor{gnat_rm/the_gnat_library id17}@anchor{2e2}
 @section @cite{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
 
 
@@ -22764,7 +22911,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{2dc}@anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{2dd}
+@anchor{gnat_rm/the_gnat_library id18}@anchor{2e3}@anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{2e4}
 @section @cite{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
 
 
@@ -22779,7 +22926,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{2de}@anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{2df}
+@anchor{gnat_rm/the_gnat_library id19}@anchor{2e5}@anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{2e6}
 @section @cite{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
 
 
@@ -22793,7 +22940,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{2e0}@anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{2e1}
+@anchor{gnat_rm/the_gnat_library id20}@anchor{2e7}@anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{2e8}
 @section @cite{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
 
 
@@ -22807,7 +22954,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{2e2}@anchor{gnat_rm/the_gnat_library id21}@anchor{2e3}
+@anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{2e9}@anchor{gnat_rm/the_gnat_library id21}@anchor{2ea}
 @section @cite{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
 
 
@@ -22820,7 +22967,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{2e4}@anchor{gnat_rm/the_gnat_library id22}@anchor{2e5}
+@anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{2eb}@anchor{gnat_rm/the_gnat_library id22}@anchor{2ec}
 @section @cite{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
 
 
@@ -22835,7 +22982,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{2e6}@anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{2e7}
+@anchor{gnat_rm/the_gnat_library id23}@anchor{2ed}@anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{2ee}
 @section @cite{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
 
 
@@ -22850,7 +22997,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{2e8}@anchor{gnat_rm/the_gnat_library id24}@anchor{2e9}
+@anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{2ef}@anchor{gnat_rm/the_gnat_library id24}@anchor{2f0}
 @section @cite{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
 
 
@@ -22867,7 +23014,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{2ea}@anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{2eb}
+@anchor{gnat_rm/the_gnat_library id25}@anchor{2f1}@anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{2f2}
 @section @cite{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
 
 
@@ -22884,7 +23031,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{2ec}@anchor{gnat_rm/the_gnat_library id26}@anchor{2ed}
+@anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{2f3}@anchor{gnat_rm/the_gnat_library id26}@anchor{2f4}
 @section @cite{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
 
 
@@ -22901,7 +23048,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{2ee}@anchor{gnat_rm/the_gnat_library id27}@anchor{2ef}
+@anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{2f5}@anchor{gnat_rm/the_gnat_library id27}@anchor{2f6}
 @section @cite{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
 
 
@@ -22916,7 +23063,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{2f0}@anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{2f1}
+@anchor{gnat_rm/the_gnat_library id28}@anchor{2f7}@anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{2f8}
 @section @cite{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
 
 
@@ -22931,7 +23078,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{2f2}@anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{2f3}
+@anchor{gnat_rm/the_gnat_library id29}@anchor{2f9}@anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{2fa}
 @section @cite{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
 
 
@@ -22944,7 +23091,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{2f4}@anchor{gnat_rm/the_gnat_library id30}@anchor{2f5}
+@anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{2fb}@anchor{gnat_rm/the_gnat_library id30}@anchor{2fc}
 @section @cite{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
 
 
@@ -22959,7 +23106,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{2f6}@anchor{gnat_rm/the_gnat_library id31}@anchor{2f7}
+@anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{2fd}@anchor{gnat_rm/the_gnat_library id31}@anchor{2fe}
 @section @cite{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
 
 
@@ -22974,7 +23121,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{2f8}@anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{2f9}
+@anchor{gnat_rm/the_gnat_library id32}@anchor{2ff}@anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{300}
 @section @cite{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
 
 
@@ -22987,7 +23134,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{2fa}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{2fb}
+@anchor{gnat_rm/the_gnat_library id33}@anchor{301}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{302}
 @section @cite{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
 
 
@@ -23002,7 +23149,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{2fc}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{2fd}
+@anchor{gnat_rm/the_gnat_library id34}@anchor{303}@anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{304}
 @section @cite{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
 
 
@@ -23017,7 +23164,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{2fe}@anchor{gnat_rm/the_gnat_library id35}@anchor{2ff}
+@anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{305}@anchor{gnat_rm/the_gnat_library id35}@anchor{306}
 @section @cite{GNAT.Altivec} (@code{g-altive.ads})
 
 
@@ -23030,7 +23177,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{300}@anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{301}
+@anchor{gnat_rm/the_gnat_library id36}@anchor{307}@anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{308}
 @section @cite{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
 
 
@@ -23041,7 +23188,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{302}@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{303}
+@anchor{gnat_rm/the_gnat_library id37}@anchor{309}@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{30a}
 @section @cite{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
 
 
@@ -23055,7 +23202,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{304}@anchor{gnat_rm/the_gnat_library id38}@anchor{305}
+@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{30b}@anchor{gnat_rm/the_gnat_library id38}@anchor{30c}
 @section @cite{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
 
 
@@ -23067,7 +23214,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{306}@anchor{gnat_rm/the_gnat_library id39}@anchor{307}
+@anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{30d}@anchor{gnat_rm/the_gnat_library id39}@anchor{30e}
 @section @cite{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
 
 
@@ -23082,7 +23229,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{308}@anchor{gnat_rm/the_gnat_library id40}@anchor{309}
+@anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{30f}@anchor{gnat_rm/the_gnat_library id40}@anchor{310}
 @section @cite{GNAT.Array_Split} (@code{g-arrspl.ads})
 
 
@@ -23095,7 +23242,7 @@ an array wherever the separators appear, and provide direct access
 to the resulting slices.
 
 @node GNAT AWK g-awk ads,GNAT Bind_Environment g-binenv ads,GNAT Array_Split g-arrspl ads,The GNAT Library
-@anchor{gnat_rm/the_gnat_library id41}@anchor{30a}@anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{30b}
+@anchor{gnat_rm/the_gnat_library id41}@anchor{311}@anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{312}
 @section @cite{GNAT.AWK} (@code{g-awk.ads})
 
 
@@ -23110,7 +23257,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 Bind_Environment g-binenv ads,GNAT Bounded_Buffers g-boubuf ads,GNAT AWK g-awk ads,The GNAT Library
-@anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{30c}@anchor{gnat_rm/the_gnat_library id42}@anchor{30d}
+@anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{313}@anchor{gnat_rm/the_gnat_library id42}@anchor{314}
 @section @cite{GNAT.Bind_Environment} (@code{g-binenv.ads})
 
 
@@ -23123,7 +23270,7 @@ These associations can be specified using the @cite{-V} binder command
 line switch.
 
 @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
-@anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{30e}@anchor{gnat_rm/the_gnat_library id43}@anchor{30f}
+@anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{315}@anchor{gnat_rm/the_gnat_library id43}@anchor{316}
 @section @cite{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
 
 
@@ -23138,7 +23285,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 id44}@anchor{310}@anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{311}
+@anchor{gnat_rm/the_gnat_library id44}@anchor{317}@anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{318}
 @section @cite{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
 
 
@@ -23151,7 +23298,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{312}@anchor{gnat_rm/the_gnat_library id45}@anchor{313}
+@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{319}@anchor{gnat_rm/the_gnat_library id45}@anchor{31a}
 @section @cite{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
 
 
@@ -23166,7 +23313,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 id46}@anchor{314}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{315}
+@anchor{gnat_rm/the_gnat_library id46}@anchor{31b}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{31c}
 @section @cite{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
 
 
@@ -23182,7 +23329,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 id47}@anchor{316}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{317}
+@anchor{gnat_rm/the_gnat_library id47}@anchor{31d}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{31e}
 @section @cite{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
 
 
@@ -23198,7 +23345,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 gnat-byte-order-mark-g-byorma-ads}@anchor{318}@anchor{gnat_rm/the_gnat_library id48}@anchor{319}
+@anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{31f}@anchor{gnat_rm/the_gnat_library id48}@anchor{320}
 @section @cite{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
 
 
@@ -23214,7 +23361,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{31a}@anchor{gnat_rm/the_gnat_library id49}@anchor{31b}
+@anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{321}@anchor{gnat_rm/the_gnat_library id49}@anchor{322}
 @section @cite{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
 
 
@@ -23228,7 +23375,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 id50}@anchor{31c}@anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{31d}
+@anchor{gnat_rm/the_gnat_library id50}@anchor{323}@anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{324}
 @section @cite{GNAT.Calendar} (@code{g-calend.ads})
 
 
@@ -23242,7 +23389,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{31e}@anchor{gnat_rm/the_gnat_library id51}@anchor{31f}
+@anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{325}@anchor{gnat_rm/the_gnat_library id51}@anchor{326}
 @section @cite{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
 
 
@@ -23253,7 +23400,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 id52}@anchor{320}@anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{321}
+@anchor{gnat_rm/the_gnat_library id52}@anchor{327}@anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{328}
 @section @cite{GNAT.CRC32} (@code{g-crc32.ads})
 
 
@@ -23270,7 +23417,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{322}@anchor{gnat_rm/the_gnat_library id53}@anchor{323}
+@anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{329}@anchor{gnat_rm/the_gnat_library id53}@anchor{32a}
 @section @cite{GNAT.Case_Util} (@code{g-casuti.ads})
 
 
@@ -23285,7 +23432,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 id54}@anchor{324}@anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{325}
+@anchor{gnat_rm/the_gnat_library id54}@anchor{32b}@anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{32c}
 @section @cite{GNAT.CGI} (@code{g-cgi.ads})
 
 
@@ -23300,7 +23447,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 gnat-cgi-cookie-g-cgicoo-ads}@anchor{326}@anchor{gnat_rm/the_gnat_library id55}@anchor{327}
+@anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{32d}@anchor{gnat_rm/the_gnat_library id55}@anchor{32e}
 @section @cite{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
 
 
@@ -23315,7 +23462,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{328}@anchor{gnat_rm/the_gnat_library id56}@anchor{329}
+@anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{32f}@anchor{gnat_rm/the_gnat_library id56}@anchor{330}
 @section @cite{GNAT.CGI.Debug} (@code{g-cgideb.ads})
 
 
@@ -23327,7 +23474,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 id57}@anchor{32a}@anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{32b}
+@anchor{gnat_rm/the_gnat_library id57}@anchor{331}@anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{332}
 @section @cite{GNAT.Command_Line} (@code{g-comlin.ads})
 
 
@@ -23340,7 +23487,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{32c}@anchor{gnat_rm/the_gnat_library id58}@anchor{32d}
+@anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id58}@anchor{334}
 @section @cite{GNAT.Compiler_Version} (@code{g-comver.ads})
 
 
@@ -23358,7 +23505,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 gnat-ctrl-c-g-ctrl-c-ads}@anchor{32e}@anchor{gnat_rm/the_gnat_library id59}@anchor{32f}
+@anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{335}@anchor{gnat_rm/the_gnat_library id59}@anchor{336}
 @section @cite{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
 
 
@@ -23369,7 +23516,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 id60}@anchor{330}@anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{331}
+@anchor{gnat_rm/the_gnat_library id60}@anchor{337}@anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{338}
 @section @cite{GNAT.Current_Exception} (@code{g-curexc.ads})
 
 
@@ -23386,7 +23533,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{332}@anchor{gnat_rm/the_gnat_library id61}@anchor{333}
+@anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{339}@anchor{gnat_rm/the_gnat_library id61}@anchor{33a}
 @section @cite{GNAT.Debug_Pools} (@code{g-debpoo.ads})
 
 
@@ -23403,7 +23550,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{334}@anchor{gnat_rm/the_gnat_library id62}@anchor{335}
+@anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{33b}@anchor{gnat_rm/the_gnat_library id62}@anchor{33c}
 @section @cite{GNAT.Debug_Utilities} (@code{g-debuti.ads})
 
 
@@ -23416,7 +23563,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{336}@anchor{gnat_rm/the_gnat_library id63}@anchor{337}
+@anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{33d}@anchor{gnat_rm/the_gnat_library id63}@anchor{33e}
 @section @cite{GNAT.Decode_String} (@code{g-decstr.ads})
 
 
@@ -23440,7 +23587,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{338}@anchor{gnat_rm/the_gnat_library id64}@anchor{339}
+@anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{33f}@anchor{gnat_rm/the_gnat_library id64}@anchor{340}
 @section @cite{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
 
 
@@ -23461,7 +23608,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 id65}@anchor{33a}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{33b}
+@anchor{gnat_rm/the_gnat_library id65}@anchor{341}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{342}
 @section @cite{GNAT.Directory_Operations} (@code{g-dirope.ads})
 
 
@@ -23474,7 +23621,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 id66}@anchor{33c}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{33d}
+@anchor{gnat_rm/the_gnat_library id66}@anchor{343}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{344}
 @section @cite{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
 
 
@@ -23486,7 +23633,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 id67}@anchor{33e}@anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{33f}
+@anchor{gnat_rm/the_gnat_library id67}@anchor{345}@anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{346}
 @section @cite{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
 
 
@@ -23504,7 +23651,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{340}@anchor{gnat_rm/the_gnat_library id68}@anchor{341}
+@anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id68}@anchor{348}
 @section @cite{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
 
 
@@ -23524,7 +23671,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 id69}@anchor{342}@anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{343}
+@anchor{gnat_rm/the_gnat_library id69}@anchor{349}@anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{34a}
 @section @cite{GNAT.Encode_String} (@code{g-encstr.ads})
 
 
@@ -23546,7 +23693,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{344}@anchor{gnat_rm/the_gnat_library id70}@anchor{345}
+@anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id70}@anchor{34c}
 @section @cite{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
 
 
@@ -23567,7 +23714,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 id71}@anchor{346}@anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{347}
+@anchor{gnat_rm/the_gnat_library id71}@anchor{34d}@anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{34e}
 @section @cite{GNAT.Exception_Actions} (@code{g-excact.ads})
 
 
@@ -23580,7 +23727,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 id72}@anchor{348}@anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{349}
+@anchor{gnat_rm/the_gnat_library id72}@anchor{34f}@anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{350}
 @section @cite{GNAT.Exception_Traces} (@code{g-exctra.ads})
 
 
@@ -23594,7 +23741,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 id73}@anchor{34a}@anchor{gnat_rm/the_gnat_library gnat-exceptions-g-expect-ads}@anchor{34b}
+@anchor{gnat_rm/the_gnat_library id73}@anchor{351}@anchor{gnat_rm/the_gnat_library gnat-exceptions-g-expect-ads}@anchor{352}
 @section @cite{GNAT.Exceptions} (@code{g-expect.ads})
 
 
@@ -23615,7 +23762,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 gnat-expect-g-expect-ads}@anchor{34c}@anchor{gnat_rm/the_gnat_library id74}@anchor{34d}
+@anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{353}@anchor{gnat_rm/the_gnat_library id74}@anchor{354}
 @section @cite{GNAT.Expect} (@code{g-expect.ads})
 
 
@@ -23631,7 +23778,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 gnat-expect-tty-g-exptty-ads}@anchor{34e}@anchor{gnat_rm/the_gnat_library id75}@anchor{34f}
+@anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{355}@anchor{gnat_rm/the_gnat_library id75}@anchor{356}
 @section @cite{GNAT.Expect.TTY} (@code{g-exptty.ads})
 
 
@@ -23643,7 +23790,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 id76}@anchor{350}@anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{351}
+@anchor{gnat_rm/the_gnat_library id76}@anchor{357}@anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{358}
 @section @cite{GNAT.Float_Control} (@code{g-flocon.ads})
 
 
@@ -23657,7 +23804,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 gnat-formatted-string-g-forstr-ads}@anchor{352}@anchor{gnat_rm/the_gnat_library id77}@anchor{353}
+@anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{359}@anchor{gnat_rm/the_gnat_library id77}@anchor{35a}
 @section @cite{GNAT.Formatted_String} (@code{g-forstr.ads})
 
 
@@ -23672,7 +23819,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{354}@anchor{gnat_rm/the_gnat_library id78}@anchor{355}
+@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id78}@anchor{35c}
 @section @cite{GNAT.Heap_Sort} (@code{g-heasor.ads})
 
 
@@ -23686,7 +23833,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 id79}@anchor{356}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{357}
+@anchor{gnat_rm/the_gnat_library id79}@anchor{35d}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{35e}
 @section @cite{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
 
 
@@ -23702,7 +23849,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 id80}@anchor{358}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{359}
+@anchor{gnat_rm/the_gnat_library id80}@anchor{35f}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{360}
 @section @cite{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
 
 
@@ -23716,7 +23863,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 id81}@anchor{35a}@anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{35b}
+@anchor{gnat_rm/the_gnat_library id81}@anchor{361}@anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{362}
 @section @cite{GNAT.HTable} (@code{g-htable.ads})
 
 
@@ -23729,7 +23876,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 id82}@anchor{35c}@anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{35d}
+@anchor{gnat_rm/the_gnat_library id82}@anchor{363}@anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{364}
 @section @cite{GNAT.IO} (@code{g-io.ads})
 
 
@@ -23745,7 +23892,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 id83}@anchor{35e}@anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{35f}
+@anchor{gnat_rm/the_gnat_library id83}@anchor{365}@anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{366}
 @section @cite{GNAT.IO_Aux} (@code{g-io_aux.ads})
 
 
@@ -23759,7 +23906,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 gnat-lock-files-g-locfil-ads}@anchor{360}@anchor{gnat_rm/the_gnat_library id84}@anchor{361}
+@anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id84}@anchor{368}
 @section @cite{GNAT.Lock_Files} (@code{g-locfil.ads})
 
 
@@ -23773,7 +23920,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 id85}@anchor{362}@anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{363}
+@anchor{gnat_rm/the_gnat_library id85}@anchor{369}@anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{36a}
 @section @cite{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
 
 
@@ -23785,7 +23932,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 id86}@anchor{364}@anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{365}
+@anchor{gnat_rm/the_gnat_library id86}@anchor{36b}@anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{36c}
 @section @cite{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
 
 
@@ -23797,7 +23944,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 id87}@anchor{366}@anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{367}
+@anchor{gnat_rm/the_gnat_library id87}@anchor{36d}@anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{36e}
 @section @cite{GNAT.MD5} (@code{g-md5.ads})
 
 
@@ -23810,7 +23957,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 id88}@anchor{368}@anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{369}
+@anchor{gnat_rm/the_gnat_library id88}@anchor{36f}@anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{370}
 @section @cite{GNAT.Memory_Dump} (@code{g-memdum.ads})
 
 
@@ -23823,7 +23970,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 id89}@anchor{36a}@anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{36b}
+@anchor{gnat_rm/the_gnat_library id89}@anchor{371}@anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{372}
 @section @cite{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
 
 
@@ -23837,7 +23984,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 id90}@anchor{36c}@anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{36d}
+@anchor{gnat_rm/the_gnat_library id90}@anchor{373}@anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{374}
 @section @cite{GNAT.OS_Lib} (@code{g-os_lib.ads})
 
 
@@ -23853,7 +24000,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 gnat-perfect-hash-generators-g-pehage-ads}@anchor{36e}@anchor{gnat_rm/the_gnat_library id91}@anchor{36f}
+@anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id91}@anchor{376}
 @section @cite{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
 
 
@@ -23871,7 +24018,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 gnat-random-numbers-g-rannum-ads}@anchor{370}@anchor{gnat_rm/the_gnat_library id92}@anchor{371}
+@anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{377}@anchor{gnat_rm/the_gnat_library id92}@anchor{378}
 @section @cite{GNAT.Random_Numbers} (@code{g-rannum.ads})
 
 
@@ -23883,7 +24030,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{243}@anchor{gnat_rm/the_gnat_library id93}@anchor{372}
+@anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{24a}@anchor{gnat_rm/the_gnat_library id93}@anchor{379}
 @section @cite{GNAT.Regexp} (@code{g-regexp.ads})
 
 
@@ -23899,7 +24046,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 id94}@anchor{373}@anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{374}
+@anchor{gnat_rm/the_gnat_library id94}@anchor{37a}@anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{37b}
 @section @cite{GNAT.Registry} (@code{g-regist.ads})
 
 
@@ -23913,7 +24060,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 gnat-regpat-g-regpat-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id95}@anchor{376}
+@anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{37c}@anchor{gnat_rm/the_gnat_library id95}@anchor{37d}
 @section @cite{GNAT.Regpat} (@code{g-regpat.ads})
 
 
@@ -23928,7 +24075,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 id96}@anchor{377}@anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{378}
+@anchor{gnat_rm/the_gnat_library id96}@anchor{37e}@anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{37f}
 @section @cite{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
 
 
@@ -23942,7 +24089,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{379}@anchor{gnat_rm/the_gnat_library id97}@anchor{37a}
+@anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{380}@anchor{gnat_rm/the_gnat_library id97}@anchor{381}
 @section @cite{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
 
 
@@ -23954,7 +24101,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 id98}@anchor{37b}@anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{37c}
+@anchor{gnat_rm/the_gnat_library id98}@anchor{382}@anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{383}
 @section @cite{GNAT.Semaphores} (@code{g-semaph.ads})
 
 
@@ -23965,7 +24112,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 gnat-serial-communications-g-sercom-ads}@anchor{37d}@anchor{gnat_rm/the_gnat_library id99}@anchor{37e}
+@anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{384}@anchor{gnat_rm/the_gnat_library id99}@anchor{385}
 @section @cite{GNAT.Serial_Communications} (@code{g-sercom.ads})
 
 
@@ -23977,7 +24124,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{37f}@anchor{gnat_rm/the_gnat_library id100}@anchor{380}
+@anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{386}@anchor{gnat_rm/the_gnat_library id100}@anchor{387}
 @section @cite{GNAT.SHA1} (@code{g-sha1.ads})
 
 
@@ -23990,7 +24137,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 id101}@anchor{381}@anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{382}
+@anchor{gnat_rm/the_gnat_library id101}@anchor{388}@anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{389}
 @section @cite{GNAT.SHA224} (@code{g-sha224.ads})
 
 
@@ -24003,7 +24150,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 id102}@anchor{383}@anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{384}
+@anchor{gnat_rm/the_gnat_library id102}@anchor{38a}@anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{38b}
 @section @cite{GNAT.SHA256} (@code{g-sha256.ads})
 
 
@@ -24016,7 +24163,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 id103}@anchor{385}@anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{386}
+@anchor{gnat_rm/the_gnat_library id103}@anchor{38c}@anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{38d}
 @section @cite{GNAT.SHA384} (@code{g-sha384.ads})
 
 
@@ -24029,7 +24176,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 gnat-sha512-g-sha512-ads}@anchor{387}@anchor{gnat_rm/the_gnat_library id104}@anchor{388}
+@anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{38e}@anchor{gnat_rm/the_gnat_library id104}@anchor{38f}
 @section @cite{GNAT.SHA512} (@code{g-sha512.ads})
 
 
@@ -24042,7 +24189,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{389}@anchor{gnat_rm/the_gnat_library id105}@anchor{38a}
+@anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{390}@anchor{gnat_rm/the_gnat_library id105}@anchor{391}
 @section @cite{GNAT.Signals} (@code{g-signal.ads})
 
 
@@ -24054,7 +24201,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{38b}@anchor{gnat_rm/the_gnat_library id106}@anchor{38c}
+@anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{392}@anchor{gnat_rm/the_gnat_library id106}@anchor{393}
 @section @cite{GNAT.Sockets} (@code{g-socket.ads})
 
 
@@ -24069,7 +24216,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{38d}@anchor{gnat_rm/the_gnat_library id107}@anchor{38e}
+@anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{394}@anchor{gnat_rm/the_gnat_library id107}@anchor{395}
 @section @cite{GNAT.Source_Info} (@code{g-souinf.ads})
 
 
@@ -24083,7 +24230,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{38f}@anchor{gnat_rm/the_gnat_library id108}@anchor{390}
+@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{396}@anchor{gnat_rm/the_gnat_library id108}@anchor{397}
 @section @cite{GNAT.Spelling_Checker} (@code{g-speche.ads})
 
 
@@ -24095,7 +24242,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 id109}@anchor{391}@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{392}
+@anchor{gnat_rm/the_gnat_library id109}@anchor{398}@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{399}
 @section @cite{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
 
 
@@ -24108,7 +24255,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 id110}@anchor{393}@anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{394}
+@anchor{gnat_rm/the_gnat_library id110}@anchor{39a}@anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{39b}
 @section @cite{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
 
 
@@ -24124,7 +24271,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 id111}@anchor{395}@anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{396}
+@anchor{gnat_rm/the_gnat_library id111}@anchor{39c}@anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{39d}
 @section @cite{GNAT.Spitbol} (@code{g-spitbo.ads})
 
 
@@ -24139,7 +24286,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 id112}@anchor{397}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{398}
+@anchor{gnat_rm/the_gnat_library id112}@anchor{39e}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{39f}
 @section @cite{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
 
 
@@ -24154,7 +24301,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 id113}@anchor{399}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{39a}
+@anchor{gnat_rm/the_gnat_library id113}@anchor{3a0}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3a1}
 @section @cite{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
 
 
@@ -24171,7 +24318,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 id114}@anchor{39b}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{39c}
+@anchor{gnat_rm/the_gnat_library id114}@anchor{3a2}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3a3}
 @section @cite{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
 
 
@@ -24188,7 +24335,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 id115}@anchor{39d}@anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{39e}
+@anchor{gnat_rm/the_gnat_library id115}@anchor{3a4}@anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3a5}
 @section @cite{GNAT.SSE} (@code{g-sse.ads})
 
 
@@ -24200,7 +24347,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 String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
-@anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{39f}@anchor{gnat_rm/the_gnat_library id116}@anchor{3a0}
+@anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3a6}@anchor{gnat_rm/the_gnat_library id116}@anchor{3a7}
 @section @cite{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
 
 
@@ -24209,7 +24356,7 @@ introduction to the binding contents and use.
 SSE vector types for use with SSE related intrinsics.
 
 @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
-@anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id117}@anchor{3a2}
+@anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3a8}@anchor{gnat_rm/the_gnat_library id117}@anchor{3a9}
 @section @cite{GNAT.String_Hash} (@code{g-strhas.ads})
 
 
@@ -24221,7 +24368,7 @@ Provides a generic hash function working on arrays of scalars. Both the scalar
 type and the hash result type are parameters.
 
 @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
-@anchor{gnat_rm/the_gnat_library id118}@anchor{3a3}@anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3a4}
+@anchor{gnat_rm/the_gnat_library id118}@anchor{3aa}@anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3ab}
 @section @cite{GNAT.Strings} (@code{g-string.ads})
 
 
@@ -24231,7 +24378,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{3a5}@anchor{gnat_rm/the_gnat_library id119}@anchor{3a6}
+@anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3ac}@anchor{gnat_rm/the_gnat_library id119}@anchor{3ad}
 @section @cite{GNAT.String_Split} (@code{g-strspl.ads})
 
 
@@ -24245,7 +24392,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 gnat-table-g-table-ads}@anchor{3a7}@anchor{gnat_rm/the_gnat_library id120}@anchor{3a8}
+@anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3ae}@anchor{gnat_rm/the_gnat_library id120}@anchor{3af}
 @section @cite{GNAT.Table} (@code{g-table.ads})
 
 
@@ -24265,7 +24412,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{3a9}@anchor{gnat_rm/the_gnat_library id121}@anchor{3aa}
+@anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3b0}@anchor{gnat_rm/the_gnat_library id121}@anchor{3b1}
 @section @cite{GNAT.Task_Lock} (@code{g-tasloc.ads})
 
 
@@ -24282,7 +24429,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{3ab}@anchor{gnat_rm/the_gnat_library id122}@anchor{3ac}
+@anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3b2}@anchor{gnat_rm/the_gnat_library id122}@anchor{3b3}
 @section @cite{GNAT.Time_Stamp} (@code{g-timsta.ads})
 
 
@@ -24297,7 +24444,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{3ad}@anchor{gnat_rm/the_gnat_library id123}@anchor{3ae}
+@anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3b4}@anchor{gnat_rm/the_gnat_library id123}@anchor{3b5}
 @section @cite{GNAT.Threads} (@code{g-thread.ads})
 
 
@@ -24314,7 +24461,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 id124}@anchor{3af}@anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3b0}
+@anchor{gnat_rm/the_gnat_library id124}@anchor{3b6}@anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3b7}
 @section @cite{GNAT.Traceback} (@code{g-traceb.ads})
 
 
@@ -24326,7 +24473,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{3b1}@anchor{gnat_rm/the_gnat_library id125}@anchor{3b2}
+@anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3b8}@anchor{gnat_rm/the_gnat_library id125}@anchor{3b9}
 @section @cite{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
 
 
@@ -24335,7 +24482,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 id126}@anchor{3b3}@anchor{gnat_rm/the_gnat_library gnat-utf-32-g-table-ads}@anchor{3b4}
+@anchor{gnat_rm/the_gnat_library id126}@anchor{3ba}@anchor{gnat_rm/the_gnat_library gnat-utf-32-g-table-ads}@anchor{3bb}
 @section @cite{GNAT.UTF_32} (@code{g-table.ads})
 
 
@@ -24354,7 +24501,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{3b5}@anchor{gnat_rm/the_gnat_library id127}@anchor{3b6}
+@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-u3spch-ads}@anchor{3bc}@anchor{gnat_rm/the_gnat_library id127}@anchor{3bd}
 @section @cite{GNAT.Wide_Spelling_Checker} (@code{g-u3spch.ads})
 
 
@@ -24367,7 +24514,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{3b7}@anchor{gnat_rm/the_gnat_library id128}@anchor{3b8}
+@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3be}@anchor{gnat_rm/the_gnat_library id128}@anchor{3bf}
 @section @cite{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
 
 
@@ -24379,7 +24526,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 gnat-wide-string-split-g-wistsp-ads}@anchor{3b9}@anchor{gnat_rm/the_gnat_library id129}@anchor{3ba}
+@anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3c0}@anchor{gnat_rm/the_gnat_library id129}@anchor{3c1}
 @section @cite{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
 
 
@@ -24393,7 +24540,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{3bb}@anchor{gnat_rm/the_gnat_library id130}@anchor{3bc}
+@anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3c2}@anchor{gnat_rm/the_gnat_library id130}@anchor{3c3}
 @section @cite{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
 
 
@@ -24405,7 +24552,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{3bd}@anchor{gnat_rm/the_gnat_library id131}@anchor{3be}
+@anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3c4}@anchor{gnat_rm/the_gnat_library id131}@anchor{3c5}
 @section @cite{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
 
 
@@ -24419,7 +24566,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 interfaces-c-extensions-i-cexten-ads}@anchor{3bf}@anchor{gnat_rm/the_gnat_library id132}@anchor{3c0}
+@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3c6}@anchor{gnat_rm/the_gnat_library id132}@anchor{3c7}
 @section @cite{Interfaces.C.Extensions} (@code{i-cexten.ads})
 
 
@@ -24430,7 +24577,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 id133}@anchor{3c1}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3c2}
+@anchor{gnat_rm/the_gnat_library id133}@anchor{3c8}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3c9}
 @section @cite{Interfaces.C.Streams} (@code{i-cstrea.ads})
 
 
@@ -24443,7 +24590,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{3c3}@anchor{gnat_rm/the_gnat_library id134}@anchor{3c4}
+@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3ca}@anchor{gnat_rm/the_gnat_library id134}@anchor{3cb}
 @section @cite{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
 
 
@@ -24457,8 +24604,8 @@ This package provides a set of routines for conversions to and
 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 interfaces-vxworks-i-vxwork-ads}@anchor{3c5}@anchor{gnat_rm/the_gnat_library id135}@anchor{3c6}
+@node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
+@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3cc}@anchor{gnat_rm/the_gnat_library id135}@anchor{3cd}
 @section @cite{Interfaces.VxWorks} (@code{i-vxwork.ads})
 
 
@@ -24473,8 +24620,24 @@ This package provides a limited binding to the VxWorks API.
 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{3c7}@anchor{gnat_rm/the_gnat_library id136}@anchor{3c8}
+@node Interfaces VxWorks Int_Connection i-vxinco ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
+@anchor{gnat_rm/the_gnat_library interfaces-vxworks-int-connection-i-vxinco-ads}@anchor{3ce}@anchor{gnat_rm/the_gnat_library id136}@anchor{3cf}
+@section @cite{Interfaces.VxWorks.Int_Connection} (@code{i-vxinco.ads})
+
+
+@geindex Interfaces.VxWorks.Int_Connection (i-vxinco.ads)
+
+@geindex Interfacing to VxWorks
+
+@geindex VxWorks
+@geindex interfacing
+
+This package provides a way for users to replace the use of
+intConnect() with a custom routine for installing interrupt
+handlers.
+
+@node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks Int_Connection i-vxinco ads,The GNAT Library
+@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3d0}@anchor{gnat_rm/the_gnat_library id137}@anchor{3d1}
 @section @cite{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
 
 
@@ -24497,7 +24660,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{3c9}@anchor{gnat_rm/the_gnat_library id137}@anchor{3ca}
+@anchor{gnat_rm/the_gnat_library id138}@anchor{3d2}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3d3}
 @section @cite{System.Address_Image} (@code{s-addima.ads})
 
 
@@ -24513,7 +24676,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 id138}@anchor{3cb}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3cc}
+@anchor{gnat_rm/the_gnat_library id139}@anchor{3d4}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{3d5}
 @section @cite{System.Assertions} (@code{s-assert.ads})
 
 
@@ -24529,7 +24692,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 id139}@anchor{3cd}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3ce}
+@anchor{gnat_rm/the_gnat_library id140}@anchor{3d6}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{3d7}
 @section @cite{System.Atomic_Counters} (@code{s-atocou.ads})
 
 
@@ -24543,7 +24706,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{3cf}@anchor{gnat_rm/the_gnat_library id140}@anchor{3d0}
+@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{3d8}@anchor{gnat_rm/the_gnat_library id141}@anchor{3d9}
 @section @cite{System.Memory} (@code{s-memory.ads})
 
 
@@ -24561,7 +24724,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 id141}@anchor{3d1}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{3d2}
+@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{3da}@anchor{gnat_rm/the_gnat_library id142}@anchor{3db}
 @section @cite{System.Multiprocessors} (@code{s-multip.ads})
 
 
@@ -24574,7 +24737,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{3d3}@anchor{gnat_rm/the_gnat_library id142}@anchor{3d4}
+@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{3dc}@anchor{gnat_rm/the_gnat_library id143}@anchor{3dd}
 @section @cite{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
 
 
@@ -24587,7 +24750,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 id143}@anchor{3d5}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{3d6}
+@anchor{gnat_rm/the_gnat_library id144}@anchor{3de}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{3df}
 @section @cite{System.Partition_Interface} (@code{s-parint.ads})
 
 
@@ -24600,7 +24763,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 id144}@anchor{3d7}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{3d8}
+@anchor{gnat_rm/the_gnat_library id145}@anchor{3e0}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{3e1}
 @section @cite{System.Pool_Global} (@code{s-pooglo.ads})
 
 
@@ -24617,7 +24780,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 id145}@anchor{3d9}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{3da}
+@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{3e2}@anchor{gnat_rm/the_gnat_library id146}@anchor{3e3}
 @section @cite{System.Pool_Local} (@code{s-pooloc.ads})
 
 
@@ -24634,7 +24797,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 id146}@anchor{3db}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{3dc}
+@anchor{gnat_rm/the_gnat_library id147}@anchor{3e4}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{3e5}
 @section @cite{System.Restrictions} (@code{s-restri.ads})
 
 
@@ -24650,7 +24813,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 system-rident-s-rident-ads}@anchor{3dd}@anchor{gnat_rm/the_gnat_library id147}@anchor{3de}
+@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{3e6}@anchor{gnat_rm/the_gnat_library id148}@anchor{3e7}
 @section @cite{System.Rident} (@code{s-rident.ads})
 
 
@@ -24666,7 +24829,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 id148}@anchor{3df}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{3e0}
+@anchor{gnat_rm/the_gnat_library id149}@anchor{3e8}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{3e9}
 @section @cite{System.Strings.Stream_Ops} (@code{s-ststop.ads})
 
 
@@ -24682,7 +24845,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{3e1}@anchor{gnat_rm/the_gnat_library id149}@anchor{3e2}
+@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{3ea}@anchor{gnat_rm/the_gnat_library id150}@anchor{3eb}
 @section @cite{System.Unsigned_Types} (@code{s-unstyp.ads})
 
 
@@ -24695,7 +24858,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{3e3}@anchor{gnat_rm/the_gnat_library id150}@anchor{3e4}
+@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{3ec}@anchor{gnat_rm/the_gnat_library id151}@anchor{3ed}
 @section @cite{System.Wch_Cnv} (@code{s-wchcnv.ads})
 
 
@@ -24716,7 +24879,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{3e5}@anchor{gnat_rm/the_gnat_library id151}@anchor{3e6}
+@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{3ee}@anchor{gnat_rm/the_gnat_library id152}@anchor{3ef}
 @section @cite{System.Wch_Con} (@code{s-wchcon.ads})
 
 
@@ -24728,7 +24891,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{3e7}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{3e8}
+@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}@anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{3f0}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{3f1}
 @chapter Interfacing to Other Languages
 
 
@@ -24746,7 +24909,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{3e9}@anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{3ea}
+@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{3f2}@anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{3f3}
 @section Interfacing to C
 
 
@@ -24884,7 +25047,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{3eb}@anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{45}
+@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{3f4}@anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{45}
 @section Interfacing to C++
 
 
@@ -24941,7 +25104,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{3ec}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{3ed}
+@anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{3f5}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{3f6}
 @section Interfacing to COBOL
 
 
@@ -24949,7 +25112,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{3ee}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{3ef}
+@anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{3f7}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{3f8}
 @section Interfacing to Fortran
 
 
@@ -24959,7 +25122,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{3f0}@anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{3f1}
+@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{3f9}@anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{3fa}
 @section Interfacing to non-GNAT Ada code
 
 
@@ -24983,7 +25146,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{3f2}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{3f3}
+@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}@anchor{gnat_rm/specialized_needs_annexes doc}@anchor{3fb}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{3fc}
 @chapter Specialized Needs Annexes
 
 
@@ -25024,7 +25187,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{3f4}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{3f5}
+@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{3fd}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{3fe}
 @chapter Implementation of Specific Ada Features
 
 
@@ -25042,7 +25205,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{158}@anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{3f6}
+@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{15e}@anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{3ff}
 @section Machine Code Insertions
 
 
@@ -25210,7 +25373,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{3f7}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{3f8}
+@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{400}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{401}
 @section GNAT Implementation of Tasking
 
 
@@ -25225,7 +25388,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{3f9}@anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{3fa}
+@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{402}@anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{403}
 @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
 
 
@@ -25294,7 +25457,7 @@ support this functionality when the parent contains more than one task.
 @geindex 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{3fb}@anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{3fc}
+@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{404}@anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{405}
 @subsection Ensuring Compliance with the Real-Time Annex
 
 
@@ -25343,7 +25506,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{3fd}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{3fe}
+@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{406}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{407}
 @section GNAT Implementation of Shared Passive Packages
 
 
@@ -25444,7 +25607,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{3ff}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{400}
+@anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{408}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{409}
 @section Code Generation for Array Aggregates
 
 
@@ -25475,7 +25638,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{401}@anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{402}
+@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{40a}@anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{40b}
 @subsection Static constant aggregates with static bounds
 
 
@@ -25522,7 +25685,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{403}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{404}
+@anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{40c}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{40d}
 @subsection Constant aggregates with unconstrained nominal types
 
 
@@ -25537,7 +25700,7 @@ Cr_Unc : constant One_Unc := (12,24,36);
 @end example
 
 @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
-@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{405}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{406}
+@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{40e}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{40f}
 @subsection Aggregates with static bounds
 
 
@@ -25565,7 +25728,7 @@ end loop;
 @end example
 
 @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
-@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{407}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{408}
+@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{410}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{411}
 @subsection Aggregates with nonstatic bounds
 
 
@@ -25576,7 +25739,7 @@ have to be applied to sub-arrays individually, if they do not have statically
 compatible subtypes.
 
 @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
-@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{409}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{40a}
+@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{412}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{413}
 @subsection Aggregates in assignment statements
 
 
@@ -25618,7 +25781,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{40b}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{40c}
+@anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{414}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{415}
 @section The Size of Discriminated Records with Default Discriminants
 
 
@@ -25698,7 +25861,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{40d}@anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{40e}
+@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{416}@anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{417}
 @section Strict Conformance to the Ada Reference Manual
 
 
@@ -25725,7 +25888,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{40f}@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{410}
+@anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{418}@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{419}
 @chapter Implementation of Ada 2012 Features
 
 
@@ -27891,7 +28054,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{411}@anchor{gnat_rm/obsolescent_features doc}@anchor{412}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{15}
+@anchor{gnat_rm/obsolescent_features id1}@anchor{41a}@anchor{gnat_rm/obsolescent_features doc}@anchor{41b}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{15}
 @chapter Obsolescent Features
 
 
@@ -27910,7 +28073,7 @@ compatibility purposes.
 @end menu
 
 @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
-@anchor{gnat_rm/obsolescent_features id2}@anchor{413}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{414}
+@anchor{gnat_rm/obsolescent_features id2}@anchor{41c}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{41d}
 @section pragma No_Run_Time
 
 
@@ -27923,7 +28086,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{415}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{416}
+@anchor{gnat_rm/obsolescent_features id3}@anchor{41e}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{41f}
 @section pragma Ravenscar
 
 
@@ -27932,7 +28095,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{417}@anchor{gnat_rm/obsolescent_features id4}@anchor{418}
+@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{420}@anchor{gnat_rm/obsolescent_features id4}@anchor{421}
 @section pragma Restricted_Run_Time
 
 
@@ -27942,7 +28105,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{419}@anchor{gnat_rm/obsolescent_features id5}@anchor{41a}
+@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{422}@anchor{gnat_rm/obsolescent_features id5}@anchor{423}
 @section pragma Task_Info
 
 
@@ -27968,7 +28131,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{41b}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{41c}
+@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{424}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{425}
 @section package System.Task_Info (@code{s-tasinf.ads})
 
 
@@ -27978,7 +28141,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{41d}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{41e}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{16}@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{426}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{427}
 @chapter Compatibility and Porting Guide
 
 
@@ -28000,7 +28163,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{41f}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{420}
+@anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{428}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{429}
 @section Writing Portable Fixed-Point Declarations
 
 
@@ -28122,7 +28285,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{421}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{422}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{42a}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{42b}
 @section Compatibility with Ada 83
 
 
@@ -28150,7 +28313,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{423}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{424}
+@anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{42c}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{42d}
 @subsection Legal Ada 83 programs that are illegal in Ada 95
 
 
@@ -28250,7 +28413,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{425}@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{426}
+@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{42e}@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{42f}
 @subsection More deterministic semantics
 
 
@@ -28278,7 +28441,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{427}@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{428}
+@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{430}@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{431}
 @subsection Changed semantics
 
 
@@ -28320,7 +28483,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{429}@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{42a}
+@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{432}@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{433}
 @subsection Other language compatibility issues
 
 
@@ -28353,7 +28516,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{42b}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{42c}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{434}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{435}
 @section Compatibility between Ada 95 and Ada 2005
 
 
@@ -28425,7 +28588,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{42d}@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{42e}
+@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{436}@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{437}
 @section Implementation-dependent characteristics
 
 
@@ -28448,7 +28611,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{42f}@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{430}
+@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{438}@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{439}
 @subsection Implementation-defined pragmas
 
 
@@ -28470,7 +28633,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{431}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{432}
+@anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{43a}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{43b}
 @subsection Implementation-defined attributes
 
 
@@ -28484,7 +28647,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{433}@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{434}
+@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{43c}@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{43d}
 @subsection Libraries
 
 
@@ -28513,7 +28676,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{435}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{436}
+@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{43e}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{43f}
 @subsection Elaboration order
 
 
@@ -28549,7 +28712,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{437}@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{438}
+@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{440}@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{441}
 @subsection Target-specific aspects
 
 
@@ -28562,10 +28725,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{439,,Representation Clauses}.
+GNAT's approach to these issues is described in @ref{442,,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{43a}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{43b}
+@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{443}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{444}
 @section Compatibility with Other Ada Systems
 
 
@@ -28608,7 +28771,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{439}@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{43c}
+@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{442}@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{445}
 @section Representation Clauses
 
 
@@ -28701,7 +28864,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{43d}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{43e}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{446}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{447}
 @section Compatibility with HP Ada 83
 
 
@@ -28731,7 +28894,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{43f}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{440}
+@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license doc}@anchor{448}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{449}
 @chapter GNU Free Documentation License
 
 
index 9664d10c5d948bb11e7e3830f73c4e2ddb2b3894..421419f5bfa90eb3f92830c260ea21d5dbeee4f7 100644 (file)
@@ -21,7 +21,7 @@
 
 @copying
 @quotation
-GNAT User's Guide for Native Platforms , July 04, 2016
+GNAT User's Guide for Native Platforms , January 13, 2017
 
 AdaCore
 
@@ -237,6 +237,7 @@ Building Executable Programs with GNAT
 * Building with gnatmake:: 
 * Compiling with gcc:: 
 * Compiler Switches:: 
+* Linker Switches:: 
 * Binding with gnatbind:: 
 * Linking with gnatlink:: 
 * Using the GNU make Utility:: 
@@ -3068,6 +3069,7 @@ Profile_Warnings
 Propagate_Exceptions
 Queuing_Policy
 Ravenscar
+Rename_Pragma
 Restricted_Run_Time
 Restrictions
 Restrictions_Warnings
@@ -7144,6 +7146,7 @@ in a GNAT context (see @ref{1f,,Using the GNU make Utility}).
 * Building with gnatmake:: 
 * Compiling with gcc:: 
 * Compiler Switches:: 
+* Linker Switches:: 
 * Binding with gnatbind:: 
 * Linking with gnatlink:: 
 * Using the GNU make Utility:: 
@@ -8593,7 +8596,7 @@ $ gcc -c -gnatc abc-def.adb
 Compile the subunit in file @code{abc-def.adb} in semantic-checking-only
 mode.
 
-@node Compiler Switches,Binding with gnatbind,Compiling with gcc,Building Executable Programs with GNAT
+@node Compiler Switches,Linker Switches,Compiling with gcc,Building Executable Programs with GNAT
 @anchor{gnat_ugn/building_executable_programs_with_gnat compiler-switches}@anchor{f0}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gcc}@anchor{ea}
 @section Compiler Switches
 
@@ -9004,9 +9007,7 @@ object file after compilation. If @emph{gnatmake} is called with
 @emph{-gnatc} as a builder switch (before @emph{-cargs} or in package
 Builder of the project file) then @emph{gnatmake} will not fail because
 it will not look for the object files after compilation, and it will not try
-to build and link. This switch may not be given if a previous @cite{-gnatR}
-switch has been given, since @cite{-gnatR} requires that the code generator
-be called to complete determination of representation information.
+to build and link.
 @end table
 
 @geindex -gnatC (gcc)
@@ -9047,7 +9048,7 @@ users guide.
 @item @code{-gnatD}
 
 Create expanded source files for source level debugging. This switch
-also suppress generation of cross-reference information
+also suppresses generation of cross-reference information
 (see @emph{-gnatx}). Note that this switch is not allowed if a previous
 -gnatR switch has been given, since these two switches are not compatible.
 @end table
@@ -9625,8 +9626,8 @@ means that no limit applies.
 
 @item @code{-gnatn[12]}
 
-Activate inlining for subprograms for which pragma @cite{Inline} is
-specified. This inlining is performed by the GCC back-end. An optional
+Activate inlining across modules for subprograms for which pragma @cite{Inline}
+is specified. This inlining is performed by the GCC back-end. An optional
 digit sets the inlining level: 1 for moderate inlining across modules
 or 2 for full inlining across modules. If no inlining level is specified,
 the compiler will pick it based on the optimization level.
@@ -14417,16 +14418,16 @@ For the source file naming rules, @ref{52,,File Naming Rules}.
 
 @item @code{-gnatn[12]}
 
-The @cite{n} here is intended to suggest the first syllable of the
-word 'inline'.
-GNAT recognizes and processes @cite{Inline} pragmas. However, for the
-inlining to actually occur, optimization must be enabled and, in order
-to enable inlining of subprograms specified by pragma @cite{Inline},
+The @cite{n} here is intended to suggest the first syllable of the word 'inline'.
+GNAT recognizes and processes @cite{Inline} pragmas. However, for inlining to
+actually occur, optimization must be enabled and, by default, inlining of
+subprograms across modules is not performed. If you want to additionally
+enable inlining of subprograms specified by pragma @cite{Inline} across modules,
 you must also specify this switch.
-In the absence of this switch, GNAT does not attempt
-inlining and does not need to access the bodies of
-subprograms for which @cite{pragma Inline} is specified if they are not
-in the current unit.
+
+In the absence of this switch, GNAT does not attempt inlining across modules
+and does not access the bodies of subprograms for which @cite{pragma Inline} is
+specified if they are not in the current unit.
 
 You can optionally specify the inlining level: 1 for moderate inlining across
 modules, which is a good compromise between compilation times and performances
@@ -14733,7 +14734,7 @@ will refer to the generated @code{xxx.dg} file. This allows
 you to do source level debugging using the generated code which is
 sometimes useful for complex code, for example to find out exactly
 which part of a complex construction raised an exception. This switch
-also suppress generation of cross-reference information (see
+also suppresses generation of cross-reference information (see
 @emph{-gnatx}) since otherwise the cross-reference information
 would refer to the @code{.dg} file, which would cause
 confusion since this is not the original source file.
@@ -14809,12 +14810,6 @@ and parameter passing mechanisms for all subprograms. A following
 Note that it is possible for record components to have zero size. In
 this case, the component clause uses an obvious extension of permitted
 Ada syntax, for example @cite{at 0 range 0 .. -1}.
-
-Representation information requires that code be generated (since it is the
-code generator that lays out complex data structures). If an attempt is made
-to output representation information when no code is generated, for example
-when a subunit is compiled on its own, then no information can be generated
-and the compiler outputs a message to this effect.
 @end table
 
 @geindex -gnatS (gcc)
@@ -15003,8 +14998,28 @@ special needs lead to requirements in this area. In particular,
 there is no point in using @emph{-m} switches to improve performance
 unless you actually see a performance improvement.
 
-@node Binding with gnatbind,Linking with gnatlink,Compiler Switches,Building Executable Programs with GNAT
-@anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-gnatbind}@anchor{1d}@anchor{gnat_ugn/building_executable_programs_with_gnat id31}@anchor{119}
+@node Linker Switches,Binding with gnatbind,Compiler Switches,Building Executable Programs with GNAT
+@anchor{gnat_ugn/building_executable_programs_with_gnat linker-switches}@anchor{119}@anchor{gnat_ugn/building_executable_programs_with_gnat id31}@anchor{11a}
+@section Linker Switches
+
+
+Linker switches can be specified after @code{-largs} builder switch.
+
+@geindex -fuse-ld=name
+
+
+@table @asis
+
+@item @code{-fuse-ld=@emph{name}}
+
+Linker to be used. The default is @code{bfd} for @code{ld.bfd},
+the alternative being @code{gold} for @code{ld.gold}. The later is
+a more recent and faster linker, but only available on GNU/Linux
+platforms.
+@end table
+
+@node Binding with gnatbind,Linking with gnatlink,Linker Switches,Building Executable Programs with GNAT
+@anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-gnatbind}@anchor{1d}@anchor{gnat_ugn/building_executable_programs_with_gnat id32}@anchor{11b}
 @section Binding with @cite{gnatbind}
 
 
@@ -15058,7 +15073,7 @@ to be read by the @emph{gnatlink} utility used to link the Ada application.
 @end menu
 
 @node Running gnatbind,Switches for gnatbind,,Binding with gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{11a}@anchor{gnat_ugn/building_executable_programs_with_gnat id32}@anchor{11b}
+@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{11c}@anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{11d}
 @subsection Running @cite{gnatbind}
 
 
@@ -15143,7 +15158,7 @@ Ada code provided the @emph{-g} switch is used for
 @emph{gnatbind} and @emph{gnatlink}.
 
 @node Switches for gnatbind,Command-Line Access,Running gnatbind,Binding with gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{11c}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{11d}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id34}@anchor{11e}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{11f}
 @subsection Switches for @emph{gnatbind}
 
 
@@ -15277,10 +15292,12 @@ relevant. It only give some control over the size of the allocated
 blocks (whose size is the minimum of the default secondary stack size value,
 and the actual size needed for the current allocation request).
 
-For certain targets, notably VxWorks 653,
-the secondary stack is allocated by carving off a fixed ratio chunk of the
-primary task stack. The -D option is used to define the
-size of the environment task's secondary stack.
+For certain targets, notably VxWorks 653 and bare board targets,
+the secondary stack is allocated by carving off a chunk of the primary task
+stack. By default this is a fixed percentage of the primary task stack as
+defined by System.Parameter.Sec_Stack_Percentage. This can be overridden per
+task using the Secondary_Stack_Size pragma/aspect. The -D option is used to
+define the size of the environment task's secondary stack.
 @end table
 
 @geindex -e (gnatbind)
@@ -15331,6 +15348,16 @@ The "s" is for "symbolic"; symbolic tracebacks are enabled.
 Currently the same as @cite{-Ea}.
 @end table
 
+@geindex -f (gnatbind)
+
+
+@table @asis
+
+@item @code{-f@emph{elab-order}}
+
+Force elaboration order.
+@end table
+
 @geindex -F (gnatbind)
 
 
@@ -15361,7 +15388,7 @@ Output usage (help) information.
 @item @code{-H32}
 
 Use 32-bit allocations for @cite{__gnat_malloc} (and thus for access types).
-For further details see @ref{11e,,Dynamic Allocation Control}.
+For further details see @ref{120,,Dynamic Allocation Control}.
 
 @geindex -H64 (gnatbind)
 
@@ -15370,7 +15397,7 @@ For further details see @ref{11e,,Dynamic Allocation Control}.
 @item @code{-H64}
 
 Use 64-bit allocations for @cite{__gnat_malloc} (and thus for access types).
-For further details see @ref{11e,,Dynamic Allocation Control}.
+For further details see @ref{120,,Dynamic Allocation Control}.
 
 @geindex -I (gnatbind)
 
@@ -15597,7 +15624,7 @@ Enable dynamic stack usage, with @cite{n} results stored and displayed
 at program termination. A result is generated when a task
 terminates. Results that can't be stored are displayed on the fly, at
 task termination. This option is currently not supported on Itanium
-platforms. (See @ref{11f,,Dynamic Stack Usage Analysis} for details.)
+platforms. (See @ref{121,,Dynamic Stack Usage Analysis} for details.)
 
 @geindex -v (gnatbind)
 
@@ -15666,7 +15693,7 @@ no arguments.
 @end menu
 
 @node Consistency-Checking Modes,Binder Error Message Control,,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat consistency-checking-modes}@anchor{120}@anchor{gnat_ugn/building_executable_programs_with_gnat id34}@anchor{121}
+@anchor{gnat_ugn/building_executable_programs_with_gnat consistency-checking-modes}@anchor{122}@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{123}
 @subsubsection Consistency-Checking Modes
 
 
@@ -15720,7 +15747,7 @@ case the checking against sources has already been performed by
 @end table
 
 @node Binder Error Message Control,Elaboration Control,Consistency-Checking Modes,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{122}@anchor{gnat_ugn/building_executable_programs_with_gnat binder-error-message-control}@anchor{123}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{124}@anchor{gnat_ugn/building_executable_programs_with_gnat binder-error-message-control}@anchor{125}
 @subsubsection Binder Error Message Control
 
 
@@ -15830,21 +15857,59 @@ with extreme care.
 @end table
 
 @node Elaboration Control,Output Control,Binder Error Message Control,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{124}@anchor{gnat_ugn/building_executable_programs_with_gnat elaboration-control}@anchor{125}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{126}@anchor{gnat_ugn/building_executable_programs_with_gnat elaboration-control}@anchor{127}
 @subsubsection Elaboration Control
 
 
 The following switches provide additional control over the elaboration
 order. For full details see @ref{f,,Elaboration Order Handling in GNAT}.
 
-@quotation
-
-@geindex -p (gnatbind)
-@end quotation
+@geindex -f (gnatbind)
 
 
 @table @asis
 
+@item @code{-f@emph{elab-order}}
+
+Force elaboration order.
+
+@cite{elab-order} should be the name of a "forced elaboration order file", that
+is, a text file containing library item names, one per line. A name of the
+form "some.unit%s" or "some.unit (spec)" denotes the spec of Some.Unit. A
+name of the form "some.unit%b" or "some.unit (body)" denotes the body of
+Some.Unit. Each pair of lines is taken to mean that there is an elaboration
+dependence of the second line on the first. For example, if the file
+contains:
+
+@example
+this (spec)
+this (body)
+that (spec)
+that (body)
+@end example
+
+then the spec of This will be elaborated before the body of This, and the
+body of This will be elaborated before the spec of That, and the spec of That
+will be elaborated before the body of That. The first and last of these three
+dependences are already required by Ada rules, so this file is really just
+forcing the body of This to be elaborated before the spec of That.
+
+The given order must be consistent with Ada rules, or else @cite{gnatbind} will
+give elaboration cycle errors. For example, if you say x (body) should be
+elaborated before x (spec), there will be a cycle, because Ada rules require
+x (spec) to be elaborated before x (body); you can't have the spec and body
+both elaborated before each other.
+
+If you later add "with That;" to the body of This, there will be a cycle, in
+which case you should erase either "this (body)" or "that (spec)" from the
+above forced elaboration order file.
+
+Blank lines and Ada-style comments are ignored. Unit names that do not exist
+in the program are ignored. Units in the GNAT predefined library are also
+ignored.
+
+@geindex -p (gnatbind)
+
 @item @code{-p}
 
 Normally the binder attempts to choose an elaboration order that is
@@ -15869,7 +15934,7 @@ production use; it is more for debugging/experimental use.
 @end table
 
 @node Output Control,Dynamic Allocation Control,Elaboration Control,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{126}@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{127}
+@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{128}@anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{129}
 @subsubsection Output Control
 
 
@@ -15950,7 +16015,7 @@ be used to improve code generation in some cases.
 @end table
 
 @node Dynamic Allocation Control,Binding with Non-Ada Main Programs,Output Control,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat dynamic-allocation-control}@anchor{11e}@anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{128}
+@anchor{gnat_ugn/building_executable_programs_with_gnat dynamic-allocation-control}@anchor{120}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{12a}
 @subsubsection Dynamic Allocation Control
 
 
@@ -15976,7 +16041,7 @@ unless explicitly overridden by a @cite{'Size} clause on the access type.
 These switches are only effective on VMS platforms.
 
 @node Binding with Non-Ada Main Programs,Binding Programs with No Main Subprogram,Dynamic Allocation Control,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-non-ada-main-programs}@anchor{b4}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{129}
+@anchor{gnat_ugn/building_executable_programs_with_gnat binding-with-non-ada-main-programs}@anchor{b4}@anchor{gnat_ugn/building_executable_programs_with_gnat id40}@anchor{12b}
 @subsubsection Binding with Non-Ada Main Programs
 
 
@@ -16072,7 +16137,7 @@ side effect is that this could be the wrong mode for the foreign code
 where floating point computation could be broken after this call.
 
 @node Binding Programs with No Main Subprogram,,Binding with Non-Ada Main Programs,Switches for gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat binding-programs-with-no-main-subprogram}@anchor{12a}@anchor{gnat_ugn/building_executable_programs_with_gnat id40}@anchor{12b}
+@anchor{gnat_ugn/building_executable_programs_with_gnat binding-programs-with-no-main-subprogram}@anchor{12c}@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{12d}
 @subsubsection Binding Programs with No Main Subprogram
 
 
@@ -16103,7 +16168,7 @@ the binder switch
 @end table
 
 @node Command-Line Access,Search Paths for gnatbind,Switches for gnatbind,Binding with gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{12c}@anchor{gnat_ugn/building_executable_programs_with_gnat command-line-access}@anchor{12d}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{12e}@anchor{gnat_ugn/building_executable_programs_with_gnat command-line-access}@anchor{12f}
 @subsection Command-Line Access
 
 
@@ -16133,7 +16198,7 @@ required, your main program must set @cite{gnat_argc} and
 it.
 
 @node Search Paths for gnatbind,Examples of gnatbind Usage,Command-Line Access,Binding with gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{8c}@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{12e}
+@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{8c}@anchor{gnat_ugn/building_executable_programs_with_gnat id43}@anchor{130}
 @subsection Search Paths for @cite{gnatbind}
 
 
@@ -16237,7 +16302,7 @@ in compiling sources from multiple directories. This can make
 development environments much more flexible.
 
 @node Examples of gnatbind Usage,,Search Paths for gnatbind,Binding with gnatbind
-@anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatbind-usage}@anchor{12f}@anchor{gnat_ugn/building_executable_programs_with_gnat id43}@anchor{130}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{131}@anchor{gnat_ugn/building_executable_programs_with_gnat examples-of-gnatbind-usage}@anchor{132}
 @subsection Examples of @cite{gnatbind} Usage
 
 
@@ -16266,7 +16331,7 @@ since gnatlink will not be able to find the generated file.
 @end quotation
 
 @node Linking with gnatlink,Using the GNU make Utility,Binding with gnatbind,Building Executable Programs with GNAT
-@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{131}@anchor{gnat_ugn/building_executable_programs_with_gnat linking-with-gnatlink}@anchor{1e}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id45}@anchor{133}@anchor{gnat_ugn/building_executable_programs_with_gnat linking-with-gnatlink}@anchor{1e}
 @section Linking with @emph{gnatlink}
 
 
@@ -16290,7 +16355,7 @@ driver (see @emph{The_GNAT_Driver_and_Project_Files}).
 @end menu
 
 @node Running gnatlink,Switches for gnatlink,,Linking with gnatlink
-@anchor{gnat_ugn/building_executable_programs_with_gnat id45}@anchor{132}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{133}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{134}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{135}
 @subsection Running @emph{gnatlink}
 
 
@@ -16349,8 +16414,8 @@ $ gnatlink my_prog -Wl,-Map,MAPFILE
 
 Using @cite{linker options} it is possible to set the program stack and
 heap size.
-See @ref{134,,Setting Stack Size from gnatlink} and
-@ref{135,,Setting Heap Size from gnatlink}.
+See @ref{136,,Setting Stack Size from gnatlink} and
+@ref{137,,Setting Heap Size from gnatlink}.
 
 @emph{gnatlink} determines the list of objects required by the Ada
 program and prepends them to the list of objects passed to the linker.
@@ -16359,7 +16424,7 @@ program and prepends them to the list of objects passed to the linker.
 presented to the linker.
 
 @node Switches for gnatlink,,Running gnatlink,Linking with gnatlink
-@anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{136}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{137}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{138}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{139}
 @subsection Switches for @emph{gnatlink}
 
 
@@ -16566,7 +16631,7 @@ switch.
 @end table
 
 @node Using the GNU make Utility,,Linking with gnatlink,Building Executable Programs with GNAT
-@anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{138}@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{1f}
+@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{1f}@anchor{gnat_ugn/building_executable_programs_with_gnat id48}@anchor{13a}
 @section Using the GNU @cite{make} Utility
 
 
@@ -16591,7 +16656,7 @@ is the same, these examples use some advanced features found only in
 @end menu
 
 @node Using gnatmake in a Makefile,Automatically Creating a List of Directories,,Using the GNU make Utility
-@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{139}@anchor{gnat_ugn/building_executable_programs_with_gnat id48}@anchor{13a}
+@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{13b}@anchor{gnat_ugn/building_executable_programs_with_gnat id49}@anchor{13c}
 @subsection Using gnatmake in a Makefile
 
 
@@ -16610,7 +16675,7 @@ the appropriate directories.
 
 Note that you should also read the example on how to automatically
 create the list of directories
-(@ref{13b,,Automatically Creating a List of Directories})
+(@ref{13d,,Automatically Creating a List of Directories})
 which might help you in case your project has a lot of subdirectories.
 
 @example
@@ -16690,7 +16755,7 @@ clean::
 @end example
 
 @node Automatically Creating a List of Directories,Generating the Command Line Switches,Using gnatmake in a Makefile,Using the GNU make Utility
-@anchor{gnat_ugn/building_executable_programs_with_gnat automatically-creating-a-list-of-directories}@anchor{13b}@anchor{gnat_ugn/building_executable_programs_with_gnat id49}@anchor{13c}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{13e}@anchor{gnat_ugn/building_executable_programs_with_gnat automatically-creating-a-list-of-directories}@anchor{13d}
 @subsection Automatically Creating a List of Directories
 
 
@@ -16763,12 +16828,12 @@ DIRS := $@{shell find $@{ROOT_DIRECTORY@} -type d -print@}
 @end example
 
 @node Generating the Command Line Switches,Overcoming Command Line Length Limits,Automatically Creating a List of Directories,Using the GNU make Utility
-@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{13d}@anchor{gnat_ugn/building_executable_programs_with_gnat generating-the-command-line-switches}@anchor{13e}
+@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{13f}@anchor{gnat_ugn/building_executable_programs_with_gnat generating-the-command-line-switches}@anchor{140}
 @subsection Generating the Command Line Switches
 
 
 Once you have created the list of directories as explained in the
-previous section (@ref{13b,,Automatically Creating a List of Directories}),
+previous section (@ref{13d,,Automatically Creating a List of Directories}),
 you can easily generate the command line arguments to pass to gnatmake.
 
 For the sake of completeness, this example assumes that the source path
@@ -16789,7 +16854,7 @@ all:
 @end example
 
 @node Overcoming Command Line Length Limits,,Generating the Command Line Switches,Using the GNU make Utility
-@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{13f}@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{140}
+@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{141}@anchor{gnat_ugn/building_executable_programs_with_gnat id52}@anchor{142}
 @subsection Overcoming Command Line Length Limits
 
 
@@ -16804,7 +16869,7 @@ even none on most systems).
 
 It assumes that you have created a list of directories in your Makefile,
 using one of the methods presented in
-@ref{13b,,Automatically Creating a List of Directories}.
+@ref{13d,,Automatically Creating a List of Directories}.
 For the sake of completeness, we assume that the object
 path (where the ALI files are found) is different from the sources patch.
 
@@ -16847,7 +16912,7 @@ all:
 @end example
 
 @node GNAT Utility Programs,GNAT and Program Execution,Building Executable Programs with GNAT,Top
-@anchor{gnat_ugn/gnat_utility_programs doc}@anchor{141}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{b}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{142}
+@anchor{gnat_ugn/gnat_utility_programs doc}@anchor{143}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{b}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{144}
 @chapter GNAT Utility Programs
 
 
@@ -16897,7 +16962,7 @@ Other GNAT utilities are described elsewhere in this manual:
 @end menu
 
 @node The File Cleanup Utility gnatclean,The GNAT Library Browser gnatls,,GNAT Utility Programs
-@anchor{gnat_ugn/gnat_utility_programs id2}@anchor{143}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{20}
+@anchor{gnat_ugn/gnat_utility_programs id2}@anchor{145}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{20}
 @section The File Cleanup Utility @emph{gnatclean}
 
 
@@ -16917,7 +16982,7 @@ generated files and executable files.
 @end menu
 
 @node Running gnatclean,Switches for gnatclean,,The File Cleanup Utility gnatclean
-@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{144}@anchor{gnat_ugn/gnat_utility_programs id3}@anchor{145}
+@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{146}@anchor{gnat_ugn/gnat_utility_programs id3}@anchor{147}
 @subsection Running @cite{gnatclean}
 
 
@@ -16941,7 +17006,7 @@ the linker. In informative-only mode, specified by switch
 normal mode is listed, but no file is actually deleted.
 
 @node Switches for gnatclean,,Running gnatclean,The File Cleanup Utility gnatclean
-@anchor{gnat_ugn/gnat_utility_programs id4}@anchor{146}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{147}
+@anchor{gnat_ugn/gnat_utility_programs id4}@anchor{148}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{149}
 @subsection Switches for @cite{gnatclean}
 
 
@@ -17143,7 +17208,7 @@ where @cite{gnatclean} was invoked.
 @end table
 
 @node The GNAT Library Browser gnatls,The Cross-Referencing Tools gnatxref and gnatfind,The File Cleanup Utility gnatclean,GNAT Utility Programs
-@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{21}@anchor{gnat_ugn/gnat_utility_programs id5}@anchor{148}
+@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{21}@anchor{gnat_ugn/gnat_utility_programs id5}@anchor{14a}
 @section The GNAT Library Browser @cite{gnatls}
 
 
@@ -17167,7 +17232,7 @@ driver (see @emph{The_GNAT_Driver_and_Project_Files}).
 @end menu
 
 @node Running gnatls,Switches for gnatls,,The GNAT Library Browser gnatls
-@anchor{gnat_ugn/gnat_utility_programs id6}@anchor{149}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{14a}
+@anchor{gnat_ugn/gnat_utility_programs id6}@anchor{14b}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{14c}
 @subsection Running @cite{gnatls}
 
 
@@ -17247,7 +17312,7 @@ version of the same source that has been modified.
 @end table
 
 @node Switches for gnatls,Example of gnatls Usage,Running gnatls,The GNAT Library Browser gnatls
-@anchor{gnat_ugn/gnat_utility_programs id7}@anchor{14b}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{14c}
+@anchor{gnat_ugn/gnat_utility_programs id7}@anchor{14d}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{14e}
 @subsection Switches for @cite{gnatls}
 
 
@@ -17429,7 +17494,7 @@ by the user.
 @end table
 
 @node Example of gnatls Usage,,Switches for gnatls,The GNAT Library Browser gnatls
-@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{14d}@anchor{gnat_ugn/gnat_utility_programs example-of-gnatls-usage}@anchor{14e}
+@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{14f}@anchor{gnat_ugn/gnat_utility_programs example-of-gnatls-usage}@anchor{150}
 @subsection Example of @cite{gnatls} Usage
 
 
@@ -17509,7 +17574,7 @@ instr.ads
 @end quotation
 
 @node The Cross-Referencing Tools gnatxref and gnatfind,The Ada to HTML Converter gnathtml,The GNAT Library Browser gnatls,GNAT Utility Programs
-@anchor{gnat_ugn/gnat_utility_programs the-cross-referencing-tools-gnatxref-and-gnatfind}@anchor{22}@anchor{gnat_ugn/gnat_utility_programs id9}@anchor{14f}
+@anchor{gnat_ugn/gnat_utility_programs the-cross-referencing-tools-gnatxref-and-gnatfind}@anchor{22}@anchor{gnat_ugn/gnat_utility_programs id9}@anchor{151}
 @section The Cross-Referencing Tools @cite{gnatxref} and @cite{gnatfind}
 
 
@@ -17554,7 +17619,7 @@ use the @cite{gnat} driver (see @emph{The_GNAT_Driver_and_Project_Files}).
 @end menu
 
 @node gnatxref Switches,gnatfind Switches,,The Cross-Referencing Tools gnatxref and gnatfind
-@anchor{gnat_ugn/gnat_utility_programs id10}@anchor{150}@anchor{gnat_ugn/gnat_utility_programs gnatxref-switches}@anchor{151}
+@anchor{gnat_ugn/gnat_utility_programs id10}@anchor{152}@anchor{gnat_ugn/gnat_utility_programs gnatxref-switches}@anchor{153}
 @subsection @cite{gnatxref} Switches
 
 
@@ -17744,11 +17809,7 @@ Equivalent to @code{-aODIR -aIDIR}.
 
 @item @code{p@emph{FILE}}
 
-Specify a project file to use (see the @emph{GNAT_Project_Manager}
-chapter in the @emph{GPRbuild User's Guide}).
-If you need to use the @code{.gpr}
-project files, you should use gnatxref through the GNAT driver
-(@emph{gnat xref -Pproject}).
+Specify a project file to use.
 
 By default, @cite{gnatxref} and @cite{gnatfind} will try to locate a
 project file in the current directory.
@@ -17768,7 +17829,7 @@ display every unused entity and 'with'ed package.
 
 Instead of producing the default output, @cite{gnatxref} will generate a
 @code{tags} file that can be used by vi. For examples how to use this
-feature, see @ref{152,,Examples of gnatxref Usage}. The tags file is output
+feature, see @ref{154,,Examples of gnatxref Usage}. The tags file is output
 to the standard output, thus you will have to redirect it to a file.
 @end table
 
@@ -17777,7 +17838,7 @@ appear after the file names. They need not be separated by spaces, thus
 you can say @code{gnatxref -ag} instead of @code{gnatxref -a -g}.
 
 @node gnatfind Switches,Project Files for gnatxref and gnatfind,gnatxref Switches,The Cross-Referencing Tools gnatxref and gnatfind
-@anchor{gnat_ugn/gnat_utility_programs id11}@anchor{153}@anchor{gnat_ugn/gnat_utility_programs gnatfind-switches}@anchor{154}
+@anchor{gnat_ugn/gnat_utility_programs id11}@anchor{155}@anchor{gnat_ugn/gnat_utility_programs gnatfind-switches}@anchor{156}
 @subsection @cite{gnatfind} Switches
 
 
@@ -17799,7 +17860,7 @@ with the following iterpretation of the command arguments:
 @item @emph{pattern}
 
 An entity will be output only if it matches the regular expression found
-in @cite{pattern}, see @ref{155,,Regular Expressions in gnatfind and gnatxref}.
+in @cite{pattern}, see @ref{157,,Regular Expressions in gnatfind and gnatxref}.
 
 Omitting the pattern is equivalent to specifying @code{*}, which
 will match any entity. Note that if you do not provide a pattern, you
@@ -17813,7 +17874,7 @@ for matching purposes. At the current time there is no support for
 
 @cite{gnatfind} will look for references, bodies or declarations
 of symbols referenced in @code{sourcefile}, at line @cite{line}
-and column @cite{column}. See @ref{156,,Examples of gnatfind Usage}
+and column @cite{column}. See @ref{158,,Examples of gnatfind Usage}
 for syntax examples.
 
 @item @emph{line}
@@ -18019,8 +18080,7 @@ Equivalent to @code{-aODIR -aIDIR}.
 
 @item @code{p@emph{FILE}}
 
-Specify a project file (see the @emph{GNAT_Project_Manager} chapter in the
-@emph{GPRbuild User's Guide}).
+Specify a project file.
 By default, @cite{gnatxref} and @cite{gnatfind} will try to locate a
 project file in the current directory.
 
@@ -18078,7 +18138,7 @@ search path. You can force it to look only in the current directory if
 you specify @cite{*} at the end of the command line.
 
 @node Project Files for gnatxref and gnatfind,Regular Expressions in gnatfind and gnatxref,gnatfind Switches,The Cross-Referencing Tools gnatxref and gnatfind
-@anchor{gnat_ugn/gnat_utility_programs project-files-for-gnatxref-and-gnatfind}@anchor{157}@anchor{gnat_ugn/gnat_utility_programs id12}@anchor{158}
+@anchor{gnat_ugn/gnat_utility_programs project-files-for-gnatxref-and-gnatfind}@anchor{159}@anchor{gnat_ugn/gnat_utility_programs id12}@anchor{15a}
 @subsection Project Files for @emph{gnatxref} and @emph{gnatfind}
 
 
@@ -18219,7 +18279,7 @@ Specifies the command used to debug the application
 @cite{src_dir} and @cite{obj_dir} lines, and ignore the others.
 
 @node Regular Expressions in gnatfind and gnatxref,Examples of gnatxref Usage,Project Files for gnatxref and gnatfind,The Cross-Referencing Tools gnatxref and gnatfind
-@anchor{gnat_ugn/gnat_utility_programs id13}@anchor{159}@anchor{gnat_ugn/gnat_utility_programs regular-expressions-in-gnatfind-and-gnatxref}@anchor{155}
+@anchor{gnat_ugn/gnat_utility_programs id13}@anchor{15b}@anchor{gnat_ugn/gnat_utility_programs regular-expressions-in-gnatfind-and-gnatxref}@anchor{157}
 @subsection Regular Expressions in @cite{gnatfind} and @cite{gnatxref}
 
 
@@ -18312,7 +18372,7 @@ least one character.
 @end itemize
 
 @node Examples of gnatxref Usage,Examples of gnatfind Usage,Regular Expressions in gnatfind and gnatxref,The Cross-Referencing Tools gnatxref and gnatfind
-@anchor{gnat_ugn/gnat_utility_programs examples-of-gnatxref-usage}@anchor{152}@anchor{gnat_ugn/gnat_utility_programs id14}@anchor{15a}
+@anchor{gnat_ugn/gnat_utility_programs examples-of-gnatxref-usage}@anchor{154}@anchor{gnat_ugn/gnat_utility_programs id14}@anchor{15c}
 @subsection Examples of @cite{gnatxref} Usage
 
 
@@ -18323,7 +18383,7 @@ least one character.
 @end menu
 
 @node General Usage,Using gnatxref with vi,,Examples of gnatxref Usage
-@anchor{gnat_ugn/gnat_utility_programs general-usage}@anchor{15b}
+@anchor{gnat_ugn/gnat_utility_programs general-usage}@anchor{15d}
 @subsubsection General Usage
 
 
@@ -18423,7 +18483,7 @@ of these.
 @end quotation
 
 @node Using gnatxref with vi,,General Usage,Examples of gnatxref Usage
-@anchor{gnat_ugn/gnat_utility_programs using-gnatxref-with-vi}@anchor{15c}
+@anchor{gnat_ugn/gnat_utility_programs using-gnatxref-with-vi}@anchor{15e}
 @subsubsection Using gnatxref with vi
 
 
@@ -18454,7 +18514,7 @@ From @emph{vi}, you can then use the command @code{:tag @emph{entity}}
 display a new file with the corresponding declaration of entity.
 
 @node Examples of gnatfind Usage,,Examples of gnatxref Usage,The Cross-Referencing Tools gnatxref and gnatfind
-@anchor{gnat_ugn/gnat_utility_programs id15}@anchor{15d}@anchor{gnat_ugn/gnat_utility_programs examples-of-gnatfind-usage}@anchor{156}
+@anchor{gnat_ugn/gnat_utility_programs id15}@anchor{15f}@anchor{gnat_ugn/gnat_utility_programs examples-of-gnatfind-usage}@anchor{158}
 @subsection Examples of @cite{gnatfind} Usage
 
 
@@ -18529,14 +18589,14 @@ point to any character in the middle of the identifier.
 @end itemize
 
 @node The Ada to HTML Converter gnathtml,,The Cross-Referencing Tools gnatxref and gnatfind,GNAT Utility Programs
-@anchor{gnat_ugn/gnat_utility_programs the-ada-to-html-converter-gnathtml}@anchor{23}@anchor{gnat_ugn/gnat_utility_programs id16}@anchor{15e}
+@anchor{gnat_ugn/gnat_utility_programs the-ada-to-html-converter-gnathtml}@anchor{23}@anchor{gnat_ugn/gnat_utility_programs id16}@anchor{160}
 @section The Ada to HTML Converter @cite{gnathtml}
 
 
 @geindex gnathtml
 
 @emph{gnathtml} is a Perl script that allows Ada source files to be browsed using
-standard Web browsers. For installation information, see @ref{15f,,Installing gnathtml}.
+standard Web browsers. For installation information, see @ref{161,,Installing gnathtml}.
 
 Ada reserved keywords are highlighted in a bold font and Ada comments in
 a blue font. Unless your program was compiled with the gcc @emph{-gnatx}
@@ -18551,7 +18611,7 @@ be able to click on any identifier and go to its declaration.
 @end menu
 
 @node Invoking gnathtml,Installing gnathtml,,The Ada to HTML Converter gnathtml
-@anchor{gnat_ugn/gnat_utility_programs invoking-gnathtml}@anchor{160}@anchor{gnat_ugn/gnat_utility_programs id17}@anchor{161}
+@anchor{gnat_ugn/gnat_utility_programs invoking-gnathtml}@anchor{162}@anchor{gnat_ugn/gnat_utility_programs id17}@anchor{163}
 @subsection Invoking @emph{gnathtml}
 
 
@@ -18717,7 +18777,7 @@ systems.
 @end table
 
 @node Installing gnathtml,,Invoking gnathtml,The Ada to HTML Converter gnathtml
-@anchor{gnat_ugn/gnat_utility_programs installing-gnathtml}@anchor{15f}@anchor{gnat_ugn/gnat_utility_programs id18}@anchor{162}
+@anchor{gnat_ugn/gnat_utility_programs installing-gnathtml}@anchor{161}@anchor{gnat_ugn/gnat_utility_programs id18}@anchor{164}
 @subsection Installing @cite{gnathtml}
 
 
@@ -18761,7 +18821,7 @@ $ perl gnathtml.pl [`switches`] `files`
 @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
 
 @node GNAT and Program Execution,Platform-Specific Information,GNAT Utility Programs,Top
-@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{c}@anchor{gnat_ugn/gnat_and_program_execution doc}@anchor{163}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{164}
+@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{c}@anchor{gnat_ugn/gnat_and_program_execution doc}@anchor{165}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{166}
 @chapter GNAT and Program Execution
 
 
@@ -18771,25 +18831,25 @@ This chapter covers several topics:
 @itemize *
 
 @item 
-@ref{165,,Running and Debugging Ada Programs}
+@ref{167,,Running and Debugging Ada Programs}
 
 @item 
-@ref{166,,Code Coverage and Profiling}
+@ref{168,,Code Coverage and Profiling}
 
 @item 
-@ref{167,,Improving Performance}
+@ref{169,,Improving Performance}
 
 @item 
-@ref{168,,Overflow Check Handling in GNAT}
+@ref{16a,,Overflow Check Handling in GNAT}
 
 @item 
-@ref{169,,Performing Dimensionality Analysis in GNAT}
+@ref{16b,,Performing Dimensionality Analysis in GNAT}
 
 @item 
-@ref{16a,,Stack Related Facilities}
+@ref{16c,,Stack Related Facilities}
 
 @item 
-@ref{16b,,Memory Management Issues}
+@ref{16d,,Memory Management Issues}
 @end itemize
 
 @menu
@@ -18804,7 +18864,7 @@ This chapter covers several topics:
 @end menu
 
 @node Running and Debugging Ada Programs,Code Coverage and Profiling,,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{165}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{24}
+@anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{167}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{24}
 @section Running and Debugging Ada Programs
 
 
@@ -18857,7 +18917,7 @@ the incorrect user program.
 @end menu
 
 @node The GNAT Debugger GDB,Running GDB,,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{16c}@anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{16d}
+@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{16e}@anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{16f}
 @subsection The GNAT Debugger GDB
 
 
@@ -18914,7 +18974,7 @@ the debugging information and can respond to user commands to inspect
 variables, and more generally to report on the state of execution.
 
 @node Running GDB,Introduction to GDB Commands,The GNAT Debugger GDB,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution id4}@anchor{16e}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{16f}
+@anchor{gnat_ugn/gnat_and_program_execution id4}@anchor{170}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{171}
 @subsection Running GDB
 
 
@@ -18941,7 +19001,7 @@ exactly as if the debugger were not present. The following section
 describes some of the additional commands that can be given to @cite{GDB}.
 
 @node Introduction to GDB Commands,Using Ada Expressions,Running GDB,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{170}@anchor{gnat_ugn/gnat_and_program_execution id5}@anchor{171}
+@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{172}@anchor{gnat_ugn/gnat_and_program_execution id5}@anchor{173}
 @subsection Introduction to GDB Commands
 
 
@@ -19149,7 +19209,7 @@ Note that most commands can be abbreviated
 (for example, c for continue, bt for backtrace).
 
 @node Using Ada Expressions,Calling User-Defined Subprograms,Introduction to GDB Commands,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution id6}@anchor{172}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{173}
+@anchor{gnat_ugn/gnat_and_program_execution id6}@anchor{174}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{175}
 @subsection Using Ada Expressions
 
 
@@ -19187,7 +19247,7 @@ their packages, regardless of context. Where this causes ambiguity,
 For details on the supported Ada syntax, see @cite{Debugging with GDB}.
 
 @node Calling User-Defined Subprograms,Using the next Command in a Function,Using Ada Expressions,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{174}@anchor{gnat_ugn/gnat_and_program_execution calling-user-defined-subprograms}@anchor{175}
+@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{176}@anchor{gnat_ugn/gnat_and_program_execution calling-user-defined-subprograms}@anchor{177}
 @subsection Calling User-Defined Subprograms
 
 
@@ -19246,7 +19306,7 @@ elements directly from GDB, you can write a callable procedure that prints
 the elements in the desired format.
 
 @node Using the next Command in a Function,Stopping When Ada Exceptions Are Raised,Calling User-Defined Subprograms,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{176}@anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{177}
+@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{178}@anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{179}
 @subsection Using the @emph{next} Command in a Function
 
 
@@ -19269,7 +19329,7 @@ The value returned is always that from the first return statement
 that was stepped through.
 
 @node Stopping When Ada Exceptions Are Raised,Ada Tasks,Using the next Command in a Function,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{178}@anchor{gnat_ugn/gnat_and_program_execution id9}@anchor{179}
+@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{17a}@anchor{gnat_ugn/gnat_and_program_execution id9}@anchor{17b}
 @subsection Stopping When Ada Exceptions Are Raised
 
 
@@ -19326,7 +19386,7 @@ argument, prints out only those exceptions whose name matches @cite{regexp}.
 @geindex Tasks (in gdb)
 
 @node Ada Tasks,Debugging Generic Units,Stopping When Ada Exceptions Are Raised,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution ada-tasks}@anchor{17a}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{17b}
+@anchor{gnat_ugn/gnat_and_program_execution ada-tasks}@anchor{17c}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{17d}
 @subsection Ada Tasks
 
 
@@ -19413,7 +19473,7 @@ see @cite{Debugging with GDB}.
 @geindex Generics
 
 @node Debugging Generic Units,Remote Debugging with gdbserver,Ada Tasks,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution debugging-generic-units}@anchor{17c}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{17d}
+@anchor{gnat_ugn/gnat_and_program_execution debugging-generic-units}@anchor{17e}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{17f}
 @subsection Debugging Generic Units
 
 
@@ -19472,7 +19532,7 @@ other units.
 @geindex Remote Debugging with gdbserver
 
 @node Remote Debugging with gdbserver,GNAT Abnormal Termination or Failure to Terminate,Debugging Generic Units,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{17e}@anchor{gnat_ugn/gnat_and_program_execution id12}@anchor{17f}
+@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{180}@anchor{gnat_ugn/gnat_and_program_execution id12}@anchor{181}
 @subsection Remote Debugging with gdbserver
 
 
@@ -19530,7 +19590,7 @@ GNAT provides support for gdbserver on x86-linux, x86-windows and x86_64-linux.
 @geindex Abnormal Termination or Failure to Terminate
 
 @node GNAT Abnormal Termination or Failure to Terminate,Naming Conventions for GNAT Source Files,Remote Debugging with gdbserver,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution gnat-abnormal-termination-or-failure-to-terminate}@anchor{180}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{181}
+@anchor{gnat_ugn/gnat_and_program_execution gnat-abnormal-termination-or-failure-to-terminate}@anchor{182}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{183}
 @subsection GNAT Abnormal Termination or Failure to Terminate
 
 
@@ -19585,7 +19645,7 @@ Finally, you can start
 @cite{gdb} directly on the @cite{gnat1} executable. @cite{gnat1} is the
 front-end of GNAT, and can be run independently (normally it is just
 called from @emph{gcc}). You can use @cite{gdb} on @cite{gnat1} as you
-would on a C program (but @ref{16c,,The GNAT Debugger GDB} for caveats). The
+would on a C program (but @ref{16e,,The GNAT Debugger GDB} for caveats). The
 @cite{where} command is the first line of attack; the variable
 @cite{lineno} (seen by @cite{print lineno}), used by the second phase of
 @cite{gnat1} and by the @emph{gcc} backend, indicates the source line at
@@ -19594,7 +19654,7 @@ the source file.
 @end itemize
 
 @node Naming Conventions for GNAT Source Files,Getting Internal Debugging Information,GNAT Abnormal Termination or Failure to Terminate,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{182}@anchor{gnat_ugn/gnat_and_program_execution id14}@anchor{183}
+@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{184}@anchor{gnat_ugn/gnat_and_program_execution id14}@anchor{185}
 @subsection Naming Conventions for GNAT Source Files
 
 
@@ -19675,7 +19735,7 @@ the other @code{.c} files are modifications of common @emph{gcc} files.
 @end itemize
 
 @node Getting Internal Debugging Information,Stack Traceback,Naming Conventions for GNAT Source Files,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{184}@anchor{gnat_ugn/gnat_and_program_execution getting-internal-debugging-information}@anchor{185}
+@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{186}@anchor{gnat_ugn/gnat_and_program_execution getting-internal-debugging-information}@anchor{187}
 @subsection Getting Internal Debugging Information
 
 
@@ -19703,7 +19763,7 @@ are replaced with run-time calls.
 @geindex stack unwinding
 
 @node Stack Traceback,,Getting Internal Debugging Information,Running and Debugging Ada Programs
-@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{186}@anchor{gnat_ugn/gnat_and_program_execution id16}@anchor{187}
+@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{188}@anchor{gnat_ugn/gnat_and_program_execution id16}@anchor{189}
 @subsection Stack Traceback
 
 
@@ -19732,7 +19792,7 @@ is enabled, and no exception is raised during program execution.
 @end menu
 
 @node Non-Symbolic Traceback,Symbolic Traceback,,Stack Traceback
-@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{188}@anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{189}
+@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{18a}@anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{18b}
 @subsubsection Non-Symbolic Traceback
 
 
@@ -19859,7 +19919,7 @@ From this traceback we can see that the exception was raised in
 @code{stb.adb} at line 5, which was reached from a procedure call in
 @code{stb.adb} at line 10, and so on. The @code{b~std.adb} is the binder file,
 which contains the call to the main program.
-@ref{11a,,Running gnatbind}. The remaining entries are assorted runtime routines,
+@ref{11c,,Running gnatbind}. The remaining entries are assorted runtime routines,
 and the output will vary from platform to platform.
 
 It is also possible to use @cite{GDB} with these traceback addresses to debug
@@ -20017,7 +20077,7 @@ need to be specified in C format, with a leading '0x').
 @geindex symbolic
 
 @node Symbolic Traceback,,Non-Symbolic Traceback,Stack Traceback
-@anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{18a}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{18b}
+@anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{18c}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{18d}
 @subsubsection Symbolic Traceback
 
 
@@ -20149,7 +20209,7 @@ program.
 @geindex Profiling
 
 @node Code Coverage and Profiling,Improving Performance,Running and Debugging Ada Programs,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution id19}@anchor{166}@anchor{gnat_ugn/gnat_and_program_execution code-coverage-and-profiling}@anchor{25}
+@anchor{gnat_ugn/gnat_and_program_execution id19}@anchor{168}@anchor{gnat_ugn/gnat_and_program_execution code-coverage-and-profiling}@anchor{25}
 @section Code Coverage and Profiling
 
 
@@ -20165,7 +20225,7 @@ the @cite{gprof} profiler tool on Ada programs.
 @end menu
 
 @node Code Coverage of Ada Programs with gcov,Profiling an Ada Program with gprof,,Code Coverage and Profiling
-@anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{18c}@anchor{gnat_ugn/gnat_and_program_execution code-coverage-of-ada-programs-with-gcov}@anchor{18d}
+@anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{18e}@anchor{gnat_ugn/gnat_and_program_execution code-coverage-of-ada-programs-with-gcov}@anchor{18f}
 @subsection Code Coverage of Ada Programs with gcov
 
 
@@ -20187,7 +20247,7 @@ details some GNAT-specific features.
 @end menu
 
 @node Quick startup guide,GNAT specifics,,Code Coverage of Ada Programs with gcov
-@anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{18e}@anchor{gnat_ugn/gnat_and_program_execution quick-startup-guide}@anchor{18f}
+@anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{190}@anchor{gnat_ugn/gnat_and_program_execution quick-startup-guide}@anchor{191}
 @subsubsection Quick startup guide
 
 
@@ -20246,7 +20306,7 @@ This will create annotated source files with a @code{.gcov} extension:
 @code{my_main.adb} file will be analyzed in @code{my_main.adb.gcov}.
 
 @node GNAT specifics,,Quick startup guide,Code Coverage of Ada Programs with gcov
-@anchor{gnat_ugn/gnat_and_program_execution gnat-specifics}@anchor{190}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{191}
+@anchor{gnat_ugn/gnat_and_program_execution gnat-specifics}@anchor{192}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{193}
 @subsubsection GNAT specifics
 
 
@@ -20271,7 +20331,7 @@ not supported as there can be unresolved symbols during the final link.
 @geindex Profiling
 
 @node Profiling an Ada Program with gprof,,Code Coverage of Ada Programs with gcov,Code Coverage and Profiling
-@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{192}@anchor{gnat_ugn/gnat_and_program_execution id23}@anchor{193}
+@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{194}@anchor{gnat_ugn/gnat_and_program_execution id23}@anchor{195}
 @subsection Profiling an Ada Program with gprof
 
 
@@ -20328,7 +20388,7 @@ to interpret the results.
 @end menu
 
 @node Compilation for profiling,Program execution,,Profiling an Ada Program with gprof
-@anchor{gnat_ugn/gnat_and_program_execution id24}@anchor{194}@anchor{gnat_ugn/gnat_and_program_execution compilation-for-profiling}@anchor{195}
+@anchor{gnat_ugn/gnat_and_program_execution id24}@anchor{196}@anchor{gnat_ugn/gnat_and_program_execution compilation-for-profiling}@anchor{197}
 @subsubsection Compilation for profiling
 
 
@@ -20356,7 +20416,7 @@ be profiled; if you need to profile your whole project, use the @code{-f}
 gnatmake switch to force full recompilation.
 
 @node Program execution,Running gprof,Compilation for profiling,Profiling an Ada Program with gprof
-@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{196}@anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{197}
+@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{198}@anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{199}
 @subsubsection Program execution
 
 
@@ -20371,7 +20431,7 @@ generated in the directory where the program was launched from. If this file
 already exists, it will be overwritten.
 
 @node Running gprof,Interpretation of profiling results,Program execution,Profiling an Ada Program with gprof
-@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{198}@anchor{gnat_ugn/gnat_and_program_execution id26}@anchor{199}
+@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{19a}@anchor{gnat_ugn/gnat_and_program_execution id26}@anchor{19b}
 @subsubsection Running gprof
 
 
@@ -20484,7 +20544,7 @@ may be given; only one @cite{function_name} may be indicated with each
 @end table
 
 @node Interpretation of profiling results,,Running gprof,Profiling an Ada Program with gprof
-@anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{19a}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{19b}
+@anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{19c}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{19d}
 @subsubsection Interpretation of profiling results
 
 
@@ -20501,7 +20561,7 @@ and the subprograms that it calls. It also provides an estimate of the time
 spent in each of those callers/called subprograms.
 
 @node Improving Performance,Overflow Check Handling in GNAT,Code Coverage and Profiling,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{26}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{167}
+@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{26}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{169}
 @section Improving Performance
 
 
@@ -20523,7 +20583,7 @@ which can reduce the size of program executables.
 @end menu
 
 @node Performance Considerations,Text_IO Suggestions,,Improving Performance
-@anchor{gnat_ugn/gnat_and_program_execution id29}@anchor{19c}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{19d}
+@anchor{gnat_ugn/gnat_and_program_execution id29}@anchor{19e}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{19f}
 @subsection Performance Considerations
 
 
@@ -20584,7 +20644,7 @@ some guidelines on debugging optimized code.
 @end menu
 
 @node Controlling Run-Time Checks,Use of Restrictions,,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{19e}@anchor{gnat_ugn/gnat_and_program_execution id30}@anchor{19f}
+@anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{1a0}@anchor{gnat_ugn/gnat_and_program_execution id30}@anchor{1a1}
 @subsubsection Controlling Run-Time Checks
 
 
@@ -20636,7 +20696,7 @@ remove checks) or @cite{pragma Unsuppress} (to add back suppressed
 checks) in the program source.
 
 @node Use of Restrictions,Optimization Levels,Controlling Run-Time Checks,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{1a0}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{1a1}
+@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{1a2}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{1a3}
 @subsubsection Use of Restrictions
 
 
@@ -20671,7 +20731,7 @@ that this also means that you can write code without worrying about the
 possibility of an immediate abort at any point.
 
 @node Optimization Levels,Debugging Optimized Code,Use of Restrictions,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution id32}@anchor{1a2}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{fc}
+@anchor{gnat_ugn/gnat_and_program_execution id32}@anchor{1a4}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{fc}
 @subsubsection Optimization Levels
 
 
@@ -20796,7 +20856,7 @@ executables which may run more slowly. See further discussion of this point
 in @ref{10f,,Inlining of Subprograms}.
 
 @node Debugging Optimized Code,Inlining of Subprograms,Optimization Levels,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{1a3}@anchor{gnat_ugn/gnat_and_program_execution debugging-optimized-code}@anchor{1a4}
+@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{1a5}@anchor{gnat_ugn/gnat_and_program_execution debugging-optimized-code}@anchor{1a6}
 @subsubsection Debugging Optimized Code
 
 
@@ -20924,7 +20984,7 @@ on the resulting executable,
 which removes both debugging information and global symbols.
 
 @node Inlining of Subprograms,Floating_Point_Operations,Debugging Optimized Code,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution id34}@anchor{1a5}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{10f}
+@anchor{gnat_ugn/gnat_and_program_execution id34}@anchor{1a7}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{10f}
 @subsubsection Inlining of Subprograms
 
 
@@ -20948,10 +21008,9 @@ subprograms.
 
 @item 
 Any one of the following applies: @cite{pragma Inline} is applied to the
-subprogram and the @emph{-gnatn} switch is specified; the
-subprogram is local to the unit and called once from within it; the
-subprogram is small and optimization level @emph{-O2} is specified;
-optimization level @emph{-O3} is specified.
+subprogram; the subprogram is local to the unit and called once from
+within it; the subprogram is small and optimization level @emph{-O2} is
+specified; optimization level @emph{-O3} is specified.
 @end itemize
 
 Calls to subprograms in @emph{with}ed units are normally not inlined.
@@ -20969,9 +21028,6 @@ The called subprogram is suitable for inlining: It must be small enough
 and not contain something that @emph{gcc} cannot support in inlined
 subprograms.
 
-@item 
-The call appears in a body (not in a package spec).
-
 @item 
 There is a @cite{pragma Inline} for the subprogram.
 
@@ -21027,7 +21083,7 @@ additional dependencies.
 @geindex -fno-inline (gcc)
 
 Note: The @emph{-fno-inline} switch overrides all other conditions and ensures that
-no inlining occurs, unless requested with pragma Inline_Always for gcc
+no inlining occurs, unless requested with pragma Inline_Always for @emph{gcc}
 back-ends. The extra dependences resulting from @emph{-gnatn} will still be active,
 even if this switch is used to suppress the resulting inlining actions.
 
@@ -21067,7 +21123,7 @@ indeed you should use @emph{-O3} only if tests show that it actually
 improves performance for your program.
 
 @node Floating_Point_Operations,Vectorization of loops,Inlining of Subprograms,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution floating-point-operations}@anchor{1a6}@anchor{gnat_ugn/gnat_and_program_execution id35}@anchor{1a7}
+@anchor{gnat_ugn/gnat_and_program_execution floating-point-operations}@anchor{1a8}@anchor{gnat_ugn/gnat_and_program_execution id35}@anchor{1a9}
 @subsubsection Floating_Point_Operations
 
 
@@ -21115,7 +21171,7 @@ so it is permissible to mix units compiled with and without these
 switches.
 
 @node Vectorization of loops,Other Optimization Switches,Floating_Point_Operations,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution id36}@anchor{1a8}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{1a9}
+@anchor{gnat_ugn/gnat_and_program_execution id36}@anchor{1aa}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{1ab}
 @subsubsection Vectorization of loops
 
 
@@ -21266,7 +21322,7 @@ placed immediately within the loop will tell the compiler that it can safely
 omit the non-vectorized version of the loop as well as the run-time test.
 
 @node Other Optimization Switches,Optimization and Strict Aliasing,Vectorization of loops,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{1aa}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{1ab}
+@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{1ac}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{1ad}
 @subsubsection Other Optimization Switches
 
 
@@ -21283,7 +21339,7 @@ the @cite{Submodel Options} section in the @cite{Hardware Models and Configurati
 chapter of @cite{Using the GNU Compiler Collection (GCC)}.
 
 @node Optimization and Strict Aliasing,Aliased Variables and Optimization,Other Optimization Switches,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{f3}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{1ac}
+@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{f3}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{1ae}
 @subsubsection Optimization and Strict Aliasing
 
 
@@ -21523,7 +21579,7 @@ review any uses of unchecked conversion of access types,
 particularly if you are getting the warnings described above.
 
 @node Aliased Variables and Optimization,Atomic Variables and Optimization,Optimization and Strict Aliasing,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution aliased-variables-and-optimization}@anchor{1ad}@anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{1ae}
+@anchor{gnat_ugn/gnat_and_program_execution aliased-variables-and-optimization}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{1b0}
 @subsubsection Aliased Variables and Optimization
 
 
@@ -21581,7 +21637,7 @@ This means that the above example will in fact "work" reliably,
 that is, it will produce the expected results.
 
 @node Atomic Variables and Optimization,Passive Task Optimization,Aliased Variables and Optimization,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution atomic-variables-and-optimization}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution id40}@anchor{1b0}
+@anchor{gnat_ugn/gnat_and_program_execution atomic-variables-and-optimization}@anchor{1b1}@anchor{gnat_ugn/gnat_and_program_execution id40}@anchor{1b2}
 @subsubsection Atomic Variables and Optimization
 
 
@@ -21662,7 +21718,7 @@ such synchronization code is not required, it may be
 useful to disable it.
 
 @node Passive Task Optimization,,Atomic Variables and Optimization,Performance Considerations
-@anchor{gnat_ugn/gnat_and_program_execution id41}@anchor{1b1}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{1b2}
+@anchor{gnat_ugn/gnat_and_program_execution id41}@anchor{1b3}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{1b4}
 @subsubsection Passive Task Optimization
 
 
@@ -21707,7 +21763,7 @@ that typically clients of the tasks who call entries, will not have
 to be modified, only the task definition itself.
 
 @node Text_IO Suggestions,Reducing Size of Executables with Unused Subprogram/Data Elimination,Performance Considerations,Improving Performance
-@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{1b3}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{1b4}
+@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{1b5}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{1b6}
 @subsection @cite{Text_IO} Suggestions
 
 
@@ -21730,7 +21786,7 @@ of the standard output file, or change the standard output file to
 be buffered using @cite{Interfaces.C_Streams.setvbuf}.
 
 @node Reducing Size of Executables with Unused Subprogram/Data Elimination,,Text_IO Suggestions,Improving Performance
-@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{1b5}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{1b6}
+@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{1b7}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{1b8}
 @subsection Reducing Size of Executables with Unused Subprogram/Data Elimination
 
 
@@ -21747,7 +21803,7 @@ your executable just by setting options at compilation time.
 @end menu
 
 @node About unused subprogram/data elimination,Compilation options,,Reducing Size of Executables with Unused Subprogram/Data Elimination
-@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{1b7}@anchor{gnat_ugn/gnat_and_program_execution about-unused-subprogram-data-elimination}@anchor{1b8}
+@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{1b9}@anchor{gnat_ugn/gnat_and_program_execution about-unused-subprogram-data-elimination}@anchor{1ba}
 @subsubsection About unused subprogram/data elimination
 
 
@@ -21763,7 +21819,7 @@ architecture and on all cross platforms using the ELF binary file format.
 In both cases GNU binutils version 2.16 or later are required to enable it.
 
 @node Compilation options,Example of unused subprogram/data elimination,About unused subprogram/data elimination,Reducing Size of Executables with Unused Subprogram/Data Elimination
-@anchor{gnat_ugn/gnat_and_program_execution id45}@anchor{1b9}@anchor{gnat_ugn/gnat_and_program_execution compilation-options}@anchor{1ba}
+@anchor{gnat_ugn/gnat_and_program_execution id45}@anchor{1bb}@anchor{gnat_ugn/gnat_and_program_execution compilation-options}@anchor{1bc}
 @subsubsection Compilation options
 
 
@@ -21802,7 +21858,7 @@ The GNAT static library is now compiled with -ffunction-sections and
 and data of the GNAT library from your executable.
 
 @node Example of unused subprogram/data elimination,,Compilation options,Reducing Size of Executables with Unused Subprogram/Data Elimination
-@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{1bb}@anchor{gnat_ugn/gnat_and_program_execution example-of-unused-subprogram-data-elimination}@anchor{1bc}
+@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{1bd}@anchor{gnat_ugn/gnat_and_program_execution example-of-unused-subprogram-data-elimination}@anchor{1be}
 @subsubsection Example of unused subprogram/data elimination
 
 
@@ -21873,7 +21929,7 @@ appropriate options.
 
 
 @node Overflow Check Handling in GNAT,Performing Dimensionality Analysis in GNAT,Improving Performance,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution id54}@anchor{168}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{27}
+@anchor{gnat_ugn/gnat_and_program_execution id54}@anchor{16a}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{27}
 @section Overflow Check Handling in GNAT
 
 
@@ -21889,7 +21945,7 @@ This section explains how to control the handling of overflow checks.
 @end menu
 
 @node Background,Management of Overflows in GNAT,,Overflow Check Handling in GNAT
-@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1bd}@anchor{gnat_ugn/gnat_and_program_execution background}@anchor{1be}
+@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1bf}@anchor{gnat_ugn/gnat_and_program_execution background}@anchor{1c0}
 @subsection Background
 
 
@@ -22015,7 +22071,7 @@ exception raised because of the intermediate overflow (and we really
 would prefer this precondition to be considered True at run time).
 
 @node Management of Overflows in GNAT,Specifying the Desired Mode,Background,Overflow Check Handling in GNAT
-@anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{1bf}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1c0}
+@anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{1c1}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1c2}
 @subsection Management of Overflows in GNAT
 
 
@@ -22129,7 +22185,7 @@ out in the normal manner (with infinite values always failing all
 range checks).
 
 @node Specifying the Desired Mode,Default Settings,Management of Overflows in GNAT,Overflow Check Handling in GNAT
-@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{f8}@anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1c1}
+@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{f8}@anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1c3}
 @subsection Specifying the Desired Mode
 
 
@@ -22254,7 +22310,7 @@ causing all intermediate operations to be computed using the base
 type (@cite{STRICT} mode).
 
 @node Default Settings,Implementation Notes,Specifying the Desired Mode,Overflow Check Handling in GNAT
-@anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1c2}@anchor{gnat_ugn/gnat_and_program_execution default-settings}@anchor{1c3}
+@anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1c4}@anchor{gnat_ugn/gnat_and_program_execution default-settings}@anchor{1c5}
 @subsection Default Settings
 
 
@@ -22301,7 +22357,7 @@ checking, but it has no effect on the method used for computing
 intermediate results.
 
 @node Implementation Notes,,Default Settings,Overflow Check Handling in GNAT
-@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1c4}@anchor{gnat_ugn/gnat_and_program_execution id59}@anchor{1c5}
+@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1c6}@anchor{gnat_ugn/gnat_and_program_execution id59}@anchor{1c7}
 @subsection Implementation Notes
 
 
@@ -22349,7 +22405,7 @@ platforms for which @cite{Long_Long_Integer} is 64-bits (nearly all GNAT
 platforms).
 
 @node Performing Dimensionality Analysis in GNAT,Stack Related Facilities,Overflow Check Handling in GNAT,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{28}@anchor{gnat_ugn/gnat_and_program_execution id60}@anchor{169}
+@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{28}@anchor{gnat_ugn/gnat_and_program_execution id60}@anchor{16b}
 @section Performing Dimensionality Analysis in GNAT
 
 
@@ -22551,7 +22607,7 @@ Final velocity: 98.10 m.s**(-1)
 @end quotation
 
 @node Stack Related Facilities,Memory Management Issues,Performing Dimensionality Analysis in GNAT,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution id61}@anchor{16a}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{29}
+@anchor{gnat_ugn/gnat_and_program_execution id61}@anchor{16c}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{29}
 @section Stack Related Facilities
 
 
@@ -22567,7 +22623,7 @@ particular, it deals with dynamic and static stack usage measurements.
 @end menu
 
 @node Stack Overflow Checking,Static Stack Usage Analysis,,Stack Related Facilities
-@anchor{gnat_ugn/gnat_and_program_execution id62}@anchor{1c6}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{f4}
+@anchor{gnat_ugn/gnat_and_program_execution id62}@anchor{1c8}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{f4}
 @subsection Stack Overflow Checking
 
 
@@ -22604,7 +22660,7 @@ If the space is exceeded, then a @cite{Storage_Error} exception is raised.
 
 For declared tasks, the stack size is controlled by the size
 given in an applicable @cite{Storage_Size} pragma or by the value specified
-at bind time with @code{-d} (@ref{11d,,Switches for gnatbind}) or is set to
+at bind time with @code{-d} (@ref{11f,,Switches for gnatbind}) or is set to
 the default size as defined in the GNAT runtime otherwise.
 
 @geindex GNAT_STACK_LIMIT
@@ -22636,7 +22692,7 @@ is an operating systems issue, and must be addressed with the
 appropriate operating systems commands.
 
 @node Static Stack Usage Analysis,Dynamic Stack Usage Analysis,Stack Overflow Checking,Stack Related Facilities
-@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{f5}@anchor{gnat_ugn/gnat_and_program_execution id63}@anchor{1c7}
+@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{f5}@anchor{gnat_ugn/gnat_and_program_execution id63}@anchor{1c9}
 @subsection Static Stack Usage Analysis
 
 
@@ -22685,7 +22741,7 @@ subprogram whose stack usage might be larger than the specified amount of
 bytes.  The wording is in keeping with the qualifier documented above.
 
 @node Dynamic Stack Usage Analysis,,Static Stack Usage Analysis,Stack Related Facilities
-@anchor{gnat_ugn/gnat_and_program_execution id64}@anchor{1c8}@anchor{gnat_ugn/gnat_and_program_execution dynamic-stack-usage-analysis}@anchor{11f}
+@anchor{gnat_ugn/gnat_and_program_execution id64}@anchor{1ca}@anchor{gnat_ugn/gnat_and_program_execution dynamic-stack-usage-analysis}@anchor{121}
 @subsection Dynamic Stack Usage Analysis
 
 
@@ -22752,7 +22808,7 @@ The package @cite{GNAT.Task_Stack_Usage} provides facilities to get
 stack usage reports at run-time. See its body for the details.
 
 @node Memory Management Issues,,Stack Related Facilities,GNAT and Program Execution
-@anchor{gnat_ugn/gnat_and_program_execution id65}@anchor{16b}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{2a}
+@anchor{gnat_ugn/gnat_and_program_execution id65}@anchor{16d}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{2a}
 @section Memory Management Issues
 
 
@@ -22768,7 +22824,7 @@ incorrect uses of access values (including 'dangling references').
 @end menu
 
 @node Some Useful Memory Pools,The GNAT Debug Pool Facility,,Memory Management Issues
-@anchor{gnat_ugn/gnat_and_program_execution id66}@anchor{1c9}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1ca}
+@anchor{gnat_ugn/gnat_and_program_execution id66}@anchor{1cb}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1cc}
 @subsection Some Useful Memory Pools
 
 
@@ -22849,7 +22905,7 @@ for T1'Storage_Size use 10_000;
 @end quotation
 
 @node The GNAT Debug Pool Facility,,Some Useful Memory Pools,Memory Management Issues
-@anchor{gnat_ugn/gnat_and_program_execution id67}@anchor{1cb}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1cc}
+@anchor{gnat_ugn/gnat_and_program_execution id67}@anchor{1cd}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1ce}
 @subsection The GNAT Debug Pool Facility
 
 
@@ -23012,7 +23068,7 @@ Debug Pool info:
 @c -- E.g. Ada |nbsp| 95
 
 @node Platform-Specific Information,Example of Binder Output File,GNAT and Program Execution,Top
-@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{d}@anchor{gnat_ugn/platform_specific_information doc}@anchor{1cd}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1ce}
+@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{d}@anchor{gnat_ugn/platform_specific_information doc}@anchor{1cf}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1d0}
 @chapter Platform-Specific Information
 
 
@@ -23029,7 +23085,7 @@ topics related to the GNAT implementation on Windows and Mac OS.
 @end menu
 
 @node Run-Time Libraries,Specifying a Run-Time Library,,Platform-Specific Information
-@anchor{gnat_ugn/platform_specific_information id2}@anchor{1cf}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{2b}
+@anchor{gnat_ugn/platform_specific_information id2}@anchor{1d1}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{2b}
 @section Run-Time Libraries
 
 
@@ -23101,7 +23157,7 @@ information about several specific platforms.
 @end menu
 
 @node Summary of Run-Time Configurations,,,Run-Time Libraries
-@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1d0}@anchor{gnat_ugn/platform_specific_information id3}@anchor{1d1}
+@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1d2}@anchor{gnat_ugn/platform_specific_information id3}@anchor{1d3}
 @subsection Summary of Run-Time Configurations
 
 
@@ -23352,7 +23408,7 @@ SJLJ
 
 
 @node Specifying a Run-Time Library,Microsoft Windows Topics,Run-Time Libraries,Platform-Specific Information
-@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1d2}@anchor{gnat_ugn/platform_specific_information id4}@anchor{1d3}
+@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1d4}@anchor{gnat_ugn/platform_specific_information id4}@anchor{1d5}
 @section Specifying a Run-Time Library
 
 
@@ -23441,7 +23497,7 @@ Alternatively, you can specify @code{rts-sjlj/adainclude} in the file
 
 Selecting another run-time library temporarily can be
 achieved by using the @emph{--RTS} switch, e.g., @emph{--RTS=sjlj}
-@anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy}@anchor{1d4}
+@anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy}@anchor{1d6}
 @geindex SCHED_FIFO scheduling policy
 
 @geindex SCHED_RR scheduling policy
@@ -23457,7 +23513,7 @@ achieved by using the @emph{--RTS} switch, e.g., @emph{--RTS=sjlj}
 @end menu
 
 @node Choosing the Scheduling Policy,Solaris-Specific Considerations,,Specifying a Run-Time Library
-@anchor{gnat_ugn/platform_specific_information id5}@anchor{1d5}
+@anchor{gnat_ugn/platform_specific_information id5}@anchor{1d7}
 @subsection Choosing the Scheduling Policy
 
 
@@ -23498,7 +23554,7 @@ binder option.
 @geindex Solaris Sparc threads libraries
 
 @node Solaris-Specific Considerations,Solaris Threads Issues,Choosing the Scheduling Policy,Specifying a Run-Time Library
-@anchor{gnat_ugn/platform_specific_information id6}@anchor{1d6}@anchor{gnat_ugn/platform_specific_information solaris-specific-considerations}@anchor{1d7}
+@anchor{gnat_ugn/platform_specific_information id6}@anchor{1d8}@anchor{gnat_ugn/platform_specific_information solaris-specific-considerations}@anchor{1d9}
 @subsection Solaris-Specific Considerations
 
 
@@ -23508,7 +23564,7 @@ on Sparc Solaris.
 @geindex rts-pthread threads library
 
 @node Solaris Threads Issues,AIX-Specific Considerations,Solaris-Specific Considerations,Specifying a Run-Time Library
-@anchor{gnat_ugn/platform_specific_information id7}@anchor{1d8}@anchor{gnat_ugn/platform_specific_information solaris-threads-issues}@anchor{1d9}
+@anchor{gnat_ugn/platform_specific_information id7}@anchor{1da}@anchor{gnat_ugn/platform_specific_information solaris-threads-issues}@anchor{1db}
 @subsection Solaris Threads Issues
 
 
@@ -23597,7 +23653,7 @@ Run the program on the specified processor.
 @end quotation
 
 @node AIX-Specific Considerations,,Solaris Threads Issues,Specifying a Run-Time Library
-@anchor{gnat_ugn/platform_specific_information aix-specific-considerations}@anchor{1da}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1db}
+@anchor{gnat_ugn/platform_specific_information aix-specific-considerations}@anchor{1dc}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1dd}
 @subsection AIX-Specific Considerations
 
 
@@ -23624,7 +23680,7 @@ this call.
 @geindex Windows 98
 
 @node Microsoft Windows Topics,Mac OS Topics,Specifying a Run-Time Library,Platform-Specific Information
-@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{2c}@anchor{gnat_ugn/platform_specific_information id9}@anchor{1dc}
+@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{2c}@anchor{gnat_ugn/platform_specific_information id9}@anchor{1de}
 @section Microsoft Windows Topics
 
 
@@ -23647,7 +23703,7 @@ platforms.
 @end menu
 
 @node Using GNAT on Windows,Using a network installation of GNAT,,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1dd}@anchor{gnat_ugn/platform_specific_information id10}@anchor{1de}
+@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1df}@anchor{gnat_ugn/platform_specific_information id10}@anchor{1e0}
 @subsection Using GNAT on Windows
 
 
@@ -23724,7 +23780,7 @@ uninstall or integrate different GNAT products.
 @end itemize
 
 @node Using a network installation of GNAT,CONSOLE and WINDOWS subsystems,Using GNAT on Windows,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information id11}@anchor{1df}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1e0}
+@anchor{gnat_ugn/platform_specific_information id11}@anchor{1e1}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1e2}
 @subsection Using a network installation of GNAT
 
 
@@ -23751,7 +23807,7 @@ transfer of large amounts of data across the network and will likely cause
 serious performance penalty.
 
 @node CONSOLE and WINDOWS subsystems,Temporary Files,Using a network installation of GNAT,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information id12}@anchor{1e1}@anchor{gnat_ugn/platform_specific_information console-and-windows-subsystems}@anchor{1e2}
+@anchor{gnat_ugn/platform_specific_information id12}@anchor{1e3}@anchor{gnat_ugn/platform_specific_information console-and-windows-subsystems}@anchor{1e4}
 @subsection CONSOLE and WINDOWS subsystems
 
 
@@ -23776,7 +23832,7 @@ $ gnatmake winprog -largs -mwindows
 @end quotation
 
 @node Temporary Files,Disabling Command Line Argument Expansion,CONSOLE and WINDOWS subsystems,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information id13}@anchor{1e3}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1e4}
+@anchor{gnat_ugn/platform_specific_information id13}@anchor{1e5}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1e6}
 @subsection Temporary Files
 
 
@@ -23815,7 +23871,7 @@ environments where you may not have write access to some
 directories.
 
 @node Disabling Command Line Argument Expansion,Mixed-Language Programming on Windows,Temporary Files,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information disabling-command-line-argument-expansion}@anchor{1e5}
+@anchor{gnat_ugn/platform_specific_information disabling-command-line-argument-expansion}@anchor{1e7}
 @subsection Disabling Command Line Argument Expansion
 
 
@@ -23886,7 +23942,7 @@ Ada.Command_Line.Argument (1) -> "'*.txt'"
 @end example
 
 @node Mixed-Language Programming on Windows,Windows Specific Add-Ons,Disabling Command Line Argument Expansion,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1e6}@anchor{gnat_ugn/platform_specific_information id14}@anchor{1e7}
+@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1e8}@anchor{gnat_ugn/platform_specific_information id14}@anchor{1e9}
 @subsection Mixed-Language Programming on Windows
 
 
@@ -23908,12 +23964,12 @@ to use the Microsoft tools for your C++ code, you have two choices:
 Encapsulate your C++ code in a DLL to be linked with your Ada
 application. In this case, use the Microsoft or whatever environment to
 build the DLL and use GNAT to build your executable
-(@ref{1e8,,Using DLLs with GNAT}).
+(@ref{1ea,,Using DLLs with GNAT}).
 
 @item 
 Or you can encapsulate your Ada code in a DLL to be linked with the
 other part of your application. In this case, use GNAT to build the DLL
-(@ref{1e9,,Building DLLs with GNAT Project files}) and use the Microsoft
+(@ref{1eb,,Building DLLs with GNAT Project files}) and use the Microsoft
 or whatever environment to build your executable.
 @end itemize
 
@@ -23970,7 +24026,7 @@ native SEH support is used.
 @end menu
 
 @node Windows Calling Conventions,Introduction to Dynamic Link Libraries DLLs,,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1ea}@anchor{gnat_ugn/platform_specific_information id15}@anchor{1eb}
+@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1ec}@anchor{gnat_ugn/platform_specific_information id15}@anchor{1ed}
 @subsubsection Windows Calling Conventions
 
 
@@ -24015,7 +24071,7 @@ are available for Windows:
 @end menu
 
 @node C Calling Convention,Stdcall Calling Convention,,Windows Calling Conventions
-@anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1ec}@anchor{gnat_ugn/platform_specific_information id16}@anchor{1ed}
+@anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1ee}@anchor{gnat_ugn/platform_specific_information id16}@anchor{1ef}
 @subsubsection @cite{C} Calling Convention
 
 
@@ -24057,10 +24113,10 @@ is missing, as in the above example, this parameter is set to be the
 When importing a variable defined in C, you should always use the @cite{C}
 calling convention unless the object containing the variable is part of a
 DLL (in which case you should use the @cite{Stdcall} calling
-convention, @ref{1ee,,Stdcall Calling Convention}).
+convention, @ref{1f0,,Stdcall Calling Convention}).
 
 @node Stdcall Calling Convention,Win32 Calling Convention,C Calling Convention,Windows Calling Conventions
-@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1ee}@anchor{gnat_ugn/platform_specific_information id17}@anchor{1ef}
+@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1f0}@anchor{gnat_ugn/platform_specific_information id17}@anchor{1f1}
 @subsubsection @cite{Stdcall} Calling Convention
 
 
@@ -24157,7 +24213,7 @@ Note that to ease building cross-platform bindings this convention
 will be handled as a @cite{C} calling convention on non-Windows platforms.
 
 @node Win32 Calling Convention,DLL Calling Convention,Stdcall Calling Convention,Windows Calling Conventions
-@anchor{gnat_ugn/platform_specific_information id18}@anchor{1f0}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1f1}
+@anchor{gnat_ugn/platform_specific_information id18}@anchor{1f2}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1f3}
 @subsubsection @cite{Win32} Calling Convention
 
 
@@ -24165,7 +24221,7 @@ This convention, which is GNAT-specific is fully equivalent to the
 @cite{Stdcall} calling convention described above.
 
 @node DLL Calling Convention,,Win32 Calling Convention,Windows Calling Conventions
-@anchor{gnat_ugn/platform_specific_information id19}@anchor{1f2}@anchor{gnat_ugn/platform_specific_information dll-calling-convention}@anchor{1f3}
+@anchor{gnat_ugn/platform_specific_information id19}@anchor{1f4}@anchor{gnat_ugn/platform_specific_information dll-calling-convention}@anchor{1f5}
 @subsubsection @cite{DLL} Calling Convention
 
 
@@ -24173,7 +24229,7 @@ This convention, which is GNAT-specific is fully equivalent to the
 @cite{Stdcall} calling convention described above.
 
 @node Introduction to Dynamic Link Libraries DLLs,Using DLLs with GNAT,Windows Calling Conventions,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information id20}@anchor{1f4}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1f5}
+@anchor{gnat_ugn/platform_specific_information id20}@anchor{1f6}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1f7}
 @subsubsection Introduction to Dynamic Link Libraries (DLLs)
 
 
@@ -24257,10 +24313,10 @@ As a side note, an interesting difference between Microsoft DLLs and
 Unix shared libraries, is the fact that on most Unix systems all public
 routines are exported by default in a Unix shared library, while under
 Windows it is possible (but not required) to list exported routines in
-a definition file (see @ref{1f6,,The Definition File}).
+a definition file (see @ref{1f8,,The Definition File}).
 
 @node Using DLLs with GNAT,Building DLLs with GNAT Project files,Introduction to Dynamic Link Libraries DLLs,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information id21}@anchor{1f7}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1e8}
+@anchor{gnat_ugn/platform_specific_information id21}@anchor{1f9}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1ea}
 @subsubsection Using DLLs with GNAT
 
 
@@ -24351,7 +24407,7 @@ example a fictitious DLL called @code{API.dll}.
 @end menu
 
 @node Creating an Ada Spec for the DLL Services,Creating an Import Library,,Using DLLs with GNAT
-@anchor{gnat_ugn/platform_specific_information creating-an-ada-spec-for-the-dll-services}@anchor{1f8}@anchor{gnat_ugn/platform_specific_information id22}@anchor{1f9}
+@anchor{gnat_ugn/platform_specific_information creating-an-ada-spec-for-the-dll-services}@anchor{1fa}@anchor{gnat_ugn/platform_specific_information id22}@anchor{1fb}
 @subsubsection Creating an Ada Spec for the DLL Services
 
 
@@ -24391,7 +24447,7 @@ end API;
 @end quotation
 
 @node Creating an Import Library,,Creating an Ada Spec for the DLL Services,Using DLLs with GNAT
-@anchor{gnat_ugn/platform_specific_information id23}@anchor{1fa}@anchor{gnat_ugn/platform_specific_information creating-an-import-library}@anchor{1fb}
+@anchor{gnat_ugn/platform_specific_information id23}@anchor{1fc}@anchor{gnat_ugn/platform_specific_information creating-an-import-library}@anchor{1fd}
 @subsubsection Creating an Import Library
 
 
@@ -24405,7 +24461,7 @@ as in this case it is possible to link directly against the
 DLL. Otherwise read on.
 
 @geindex Definition file
-@anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1f6}
+@anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1f8}
 @subsubheading The Definition File
 
 
@@ -24453,17 +24509,17 @@ EXPORTS
 @end table
 
 Note that you must specify the correct suffix (@code{@@@emph{nn}})
-(see @ref{1ea,,Windows Calling Conventions}) for a Stdcall
+(see @ref{1ec,,Windows Calling Conventions}) for a Stdcall
 calling convention function in the exported symbols list.
 
 There can actually be other sections in a definition file, but these
 sections are not relevant to the discussion at hand.
-@anchor{gnat_ugn/platform_specific_information create-def-file-automatically}@anchor{1fc}
+@anchor{gnat_ugn/platform_specific_information create-def-file-automatically}@anchor{1fe}
 @subsubheading Creating a Definition File Automatically
 
 
 You can automatically create the definition file @code{API.def}
-(see @ref{1f6,,The Definition File}) from a DLL.
+(see @ref{1f8,,The Definition File}) from a DLL.
 For that use the @cite{dlltool} program as follows:
 
 @quotation
@@ -24473,7 +24529,7 @@ $ dlltool API.dll -z API.def --export-all-symbols
 @end example
 
 Note that if some routines in the DLL have the @cite{Stdcall} convention
-(@ref{1ea,,Windows Calling Conventions}) with stripped @code{@@@emph{nn}}
+(@ref{1ec,,Windows Calling Conventions}) with stripped @code{@@@emph{nn}}
 suffix then you'll have to edit @code{api.def} to add it, and specify
 @emph{-k} to @emph{gnatdll} when creating the import library.
 
@@ -24497,13 +24553,13 @@ tells you what symbol is expected. You just have to go back to the
 definition file and add the right suffix.
 @end itemize
 @end quotation
-@anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1fd}
+@anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1ff}
 @subsubheading GNAT-Style Import Library
 
 
 To create a static import library from @code{API.dll} with the GNAT tools
 you should create the .def file, then use @cite{gnatdll} tool
-(see @ref{1fe,,Using gnatdll}) as follows:
+(see @ref{200,,Using gnatdll}) as follows:
 
 @quotation
 
@@ -24519,15 +24575,15 @@ definition file name is @cite{xyz`}.def`, the import library name will
 be @cite{lib`@w{`}xyz`}.a`. Note that in the previous example option
 @emph{-e} could have been removed because the name of the definition
 file (before the '@cite{.def}' suffix) is the same as the name of the
-DLL (@ref{1fe,,Using gnatdll} for more information about @cite{gnatdll}).
+DLL (@ref{200,,Using gnatdll} for more information about @cite{gnatdll}).
 @end quotation
-@anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{1ff}
+@anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{201}
 @subsubheading Microsoft-Style Import Library
 
 
 A Microsoft import library is needed only if you plan to make an
 Ada DLL available to applications developed with Microsoft
-tools (@ref{1e6,,Mixed-Language Programming on Windows}).
+tools (@ref{1e8,,Mixed-Language Programming on Windows}).
 
 To create a Microsoft-style import library for @code{API.dll} you
 should create the .def file, then build the actual import library using
@@ -24551,7 +24607,7 @@ See the Microsoft documentation for further details about the usage of
 @end quotation
 
 @node Building DLLs with GNAT Project files,Building DLLs with GNAT,Using DLLs with GNAT,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information id24}@anchor{200}@anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat-project-files}@anchor{1e9}
+@anchor{gnat_ugn/platform_specific_information id24}@anchor{202}@anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat-project-files}@anchor{1eb}
 @subsubsection Building DLLs with GNAT Project files
 
 
@@ -24567,7 +24623,7 @@ when inside the @cite{DllMain} routine which is used for auto-initialization
 of shared libraries, so it is not possible to have library level tasks in SALs.
 
 @node Building DLLs with GNAT,Building DLLs with gnatdll,Building DLLs with GNAT Project files,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat}@anchor{201}@anchor{gnat_ugn/platform_specific_information id25}@anchor{202}
+@anchor{gnat_ugn/platform_specific_information building-dlls-with-gnat}@anchor{203}@anchor{gnat_ugn/platform_specific_information id25}@anchor{204}
 @subsubsection Building DLLs with GNAT
 
 
@@ -24598,7 +24654,7 @@ $ gcc -shared -shared-libgcc -o api.dll obj1.o obj2.o ...
 It is important to note that in this case all symbols found in the
 object files are automatically exported. It is possible to restrict
 the set of symbols to export by passing to @emph{gcc} a definition
-file (see @ref{1f6,,The Definition File}).
+file (see @ref{1f8,,The Definition File}).
 For example:
 
 @example
@@ -24636,7 +24692,7 @@ $ gnatmake main -Iapilib -bargs -shared -largs -Lapilib -lAPI
 @end quotation
 
 @node Building DLLs with gnatdll,Ada DLLs and Finalization,Building DLLs with GNAT,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information building-dlls-with-gnatdll}@anchor{203}@anchor{gnat_ugn/platform_specific_information id26}@anchor{204}
+@anchor{gnat_ugn/platform_specific_information building-dlls-with-gnatdll}@anchor{205}@anchor{gnat_ugn/platform_specific_information id26}@anchor{206}
 @subsubsection Building DLLs with gnatdll
 
 
@@ -24644,8 +24700,8 @@ $ gnatmake main -Iapilib -bargs -shared -largs -Lapilib -lAPI
 @geindex building
 
 Note that it is preferred to use GNAT Project files
-(@ref{1e9,,Building DLLs with GNAT Project files}) or the built-in GNAT
-DLL support (@ref{201,,Building DLLs with GNAT}) or to build DLLs.
+(@ref{1eb,,Building DLLs with GNAT Project files}) or the built-in GNAT
+DLL support (@ref{203,,Building DLLs with GNAT}) or to build DLLs.
 
 This section explains how to build DLLs containing Ada code using
 @cite{gnatdll}. These DLLs will be referred to as Ada DLLs in the
@@ -24661,20 +24717,20 @@ non-Ada applications are as follows:
 You need to mark each Ada @emph{entity} exported by the DLL with a @cite{C} or
 @cite{Stdcall} calling convention to avoid any Ada name mangling for the
 entities exported by the DLL
-(see @ref{205,,Exporting Ada Entities}). You can
+(see @ref{207,,Exporting Ada Entities}). You can
 skip this step if you plan to use the Ada DLL only from Ada applications.
 
 @item 
 Your Ada code must export an initialization routine which calls the routine
 @cite{adainit} generated by @emph{gnatbind} to perform the elaboration of
-the Ada code in the DLL (@ref{206,,Ada DLLs and Elaboration}). The initialization
+the Ada code in the DLL (@ref{208,,Ada DLLs and Elaboration}). The initialization
 routine exported by the Ada DLL must be invoked by the clients of the DLL
 to initialize the DLL.
 
 @item 
 When useful, the DLL should also export a finalization routine which calls
 routine @cite{adafinal} generated by @emph{gnatbind} to perform the
-finalization of the Ada code in the DLL (@ref{207,,Ada DLLs and Finalization}).
+finalization of the Ada code in the DLL (@ref{209,,Ada DLLs and Finalization}).
 The finalization routine exported by the Ada DLL must be invoked by the
 clients of the DLL when the DLL services are no further needed.
 
@@ -24684,11 +24740,11 @@ of the programming languages to which you plan to make the DLL available.
 
 @item 
 You must provide a definition file listing the exported entities
-(@ref{1f6,,The Definition File}).
+(@ref{1f8,,The Definition File}).
 
 @item 
 Finally you must use @cite{gnatdll} to produce the DLL and the import
-library (@ref{1fe,,Using gnatdll}).
+library (@ref{200,,Using gnatdll}).
 @end itemize
 
 Note that a relocatable DLL stripped using the @cite{strip}
@@ -24708,7 +24764,7 @@ chapter of the @emph{GPRbuild User's Guide}.
 @end menu
 
 @node Limitations When Using Ada DLLs from Ada,Exporting Ada Entities,,Building DLLs with gnatdll
-@anchor{gnat_ugn/platform_specific_information limitations-when-using-ada-dlls-from-ada}@anchor{208}
+@anchor{gnat_ugn/platform_specific_information limitations-when-using-ada-dlls-from-ada}@anchor{20a}
 @subsubsection Limitations When Using Ada DLLs from Ada
 
 
@@ -24729,7 +24785,7 @@ It is completely safe to exchange plain elementary, array or record types,
 Windows object handles, etc.
 
 @node Exporting Ada Entities,Ada DLLs and Elaboration,Limitations When Using Ada DLLs from Ada,Building DLLs with gnatdll
-@anchor{gnat_ugn/platform_specific_information exporting-ada-entities}@anchor{205}@anchor{gnat_ugn/platform_specific_information id27}@anchor{209}
+@anchor{gnat_ugn/platform_specific_information exporting-ada-entities}@anchor{207}@anchor{gnat_ugn/platform_specific_information id27}@anchor{20b}
 @subsubsection Exporting Ada Entities
 
 
@@ -24829,10 +24885,10 @@ end API;
 Note that if you do not export the Ada entities with a @cite{C} or
 @cite{Stdcall} convention you will have to provide the mangled Ada names
 in the definition file of the Ada DLL
-(@ref{20a,,Creating the Definition File}).
+(@ref{20c,,Creating the Definition File}).
 
 @node Ada DLLs and Elaboration,,Exporting Ada Entities,Building DLLs with gnatdll
-@anchor{gnat_ugn/platform_specific_information ada-dlls-and-elaboration}@anchor{206}@anchor{gnat_ugn/platform_specific_information id28}@anchor{20b}
+@anchor{gnat_ugn/platform_specific_information ada-dlls-and-elaboration}@anchor{208}@anchor{gnat_ugn/platform_specific_information id28}@anchor{20d}
 @subsubsection Ada DLLs and Elaboration
 
 
@@ -24850,7 +24906,7 @@ the Ada elaboration routine @cite{adainit} generated by the GNAT binder
 (@ref{b4,,Binding with Non-Ada Main Programs}). See the body of
 @cite{Initialize_Api} for an example. Note that the GNAT binder is
 automatically invoked during the DLL build process by the @cite{gnatdll}
-tool (@ref{1fe,,Using gnatdll}).
+tool (@ref{200,,Using gnatdll}).
 
 When a DLL is loaded, Windows systematically invokes a routine called
 @cite{DllMain}. It would therefore be possible to call @cite{adainit}
@@ -24863,7 +24919,7 @@ time), which means that the GNAT run time will deadlock waiting for the
 newly created task to complete its initialization.
 
 @node Ada DLLs and Finalization,Creating a Spec for Ada DLLs,Building DLLs with gnatdll,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information id29}@anchor{20c}@anchor{gnat_ugn/platform_specific_information ada-dlls-and-finalization}@anchor{207}
+@anchor{gnat_ugn/platform_specific_information id29}@anchor{20e}@anchor{gnat_ugn/platform_specific_information ada-dlls-and-finalization}@anchor{209}
 @subsubsection Ada DLLs and Finalization
 
 
@@ -24878,10 +24934,10 @@ routine @cite{adafinal} generated by the GNAT binder
 See the body of @cite{Finalize_Api} for an
 example. As already pointed out the GNAT binder is automatically invoked
 during the DLL build process by the @cite{gnatdll} tool
-(@ref{1fe,,Using gnatdll}).
+(@ref{200,,Using gnatdll}).
 
 @node Creating a Spec for Ada DLLs,GNAT and Windows Resources,Ada DLLs and Finalization,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information id30}@anchor{20d}@anchor{gnat_ugn/platform_specific_information creating-a-spec-for-ada-dlls}@anchor{20e}
+@anchor{gnat_ugn/platform_specific_information id30}@anchor{20f}@anchor{gnat_ugn/platform_specific_information creating-a-spec-for-ada-dlls}@anchor{210}
 @subsubsection Creating a Spec for Ada DLLs
 
 
@@ -24939,7 +24995,7 @@ end API;
 @end menu
 
 @node Creating the Definition File,Using gnatdll,,Creating a Spec for Ada DLLs
-@anchor{gnat_ugn/platform_specific_information creating-the-definition-file}@anchor{20a}@anchor{gnat_ugn/platform_specific_information id31}@anchor{20f}
+@anchor{gnat_ugn/platform_specific_information creating-the-definition-file}@anchor{20c}@anchor{gnat_ugn/platform_specific_information id31}@anchor{211}
 @subsubsection Creating the Definition File
 
 
@@ -24975,7 +25031,7 @@ EXPORTS
 @end quotation
 
 @node Using gnatdll,,Creating the Definition File,Creating a Spec for Ada DLLs
-@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{1fe}@anchor{gnat_ugn/platform_specific_information id32}@anchor{210}
+@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{200}@anchor{gnat_ugn/platform_specific_information id32}@anchor{212}
 @subsubsection Using @cite{gnatdll}
 
 
@@ -25186,7 +25242,7 @@ asks @emph{gnatlink} to generate the routines @cite{DllMain} and
 is loaded into memory.
 
 @item 
-@cite{gnatdll} uses @cite{dlltool} (see @ref{211,,Using dlltool}) to build the
+@cite{gnatdll} uses @cite{dlltool} (see @ref{213,,Using dlltool}) to build the
 export table (@code{api.exp}). The export table contains the relocation
 information in a form which can be used during the final link to ensure
 that the Windows loader is able to place the DLL anywhere in memory.
@@ -25225,7 +25281,7 @@ $ gnatbind -n api
 $ gnatlink api api.exp -o api.dll -mdll
 @end example
 @end itemize
-@anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{211}
+@anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{213}
 @subsubheading Using @cite{dlltool}
 
 
@@ -25284,7 +25340,7 @@ DLL in the static import library generated by @cite{dlltool} with switch
 @item @code{-k}
 
 Kill @code{@@@emph{nn}} from exported names
-(@ref{1ea,,Windows Calling Conventions}
+(@ref{1ec,,Windows Calling Conventions}
 for a discussion about @cite{Stdcall}-style symbols.
 @end table
 
@@ -25340,7 +25396,7 @@ Use @cite{assembler-name} as the assembler. The default is @cite{as}.
 @end table
 
 @node GNAT and Windows Resources,Using GNAT DLLs from Microsoft Visual Studio Applications,Creating a Spec for Ada DLLs,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information gnat-and-windows-resources}@anchor{212}@anchor{gnat_ugn/platform_specific_information id33}@anchor{213}
+@anchor{gnat_ugn/platform_specific_information gnat-and-windows-resources}@anchor{214}@anchor{gnat_ugn/platform_specific_information id33}@anchor{215}
 @subsubsection GNAT and Windows Resources
 
 
@@ -25435,7 +25491,7 @@ the corresponding Microsoft documentation.
 @end menu
 
 @node Building Resources,Compiling Resources,,GNAT and Windows Resources
-@anchor{gnat_ugn/platform_specific_information building-resources}@anchor{214}@anchor{gnat_ugn/platform_specific_information id34}@anchor{215}
+@anchor{gnat_ugn/platform_specific_information building-resources}@anchor{216}@anchor{gnat_ugn/platform_specific_information id34}@anchor{217}
 @subsubsection Building Resources
 
 
@@ -25455,7 +25511,7 @@ complete description of the resource script language can be found in the
 Microsoft documentation.
 
 @node Compiling Resources,Using Resources,Building Resources,GNAT and Windows Resources
-@anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{216}@anchor{gnat_ugn/platform_specific_information id35}@anchor{217}
+@anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{218}@anchor{gnat_ugn/platform_specific_information id35}@anchor{219}
 @subsubsection Compiling Resources
 
 
@@ -25497,7 +25553,7 @@ $ windres -i myres.res -o myres.o
 @end quotation
 
 @node Using Resources,,Compiling Resources,GNAT and Windows Resources
-@anchor{gnat_ugn/platform_specific_information id36}@anchor{218}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{219}
+@anchor{gnat_ugn/platform_specific_information id36}@anchor{21a}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{21b}
 @subsubsection Using Resources
 
 
@@ -25517,7 +25573,7 @@ $ gnatmake myprog -largs myres.o
 @end quotation
 
 @node Using GNAT DLLs from Microsoft Visual Studio Applications,Debugging a DLL,GNAT and Windows Resources,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information using-gnat-dll-from-msvs}@anchor{21a}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{21b}
+@anchor{gnat_ugn/platform_specific_information using-gnat-dll-from-msvs}@anchor{21c}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{21d}
 @subsubsection Using GNAT DLLs from Microsoft Visual Studio Applications
 
 
@@ -25551,7 +25607,7 @@ $ gprbuild -p mylib.gpr
 @item 
 Produce a .def file for the symbols you need to interface with, either by
 hand or automatically with possibly some manual adjustments
-(see @ref{1fc,,Creating Definition File Automatically}):
+(see @ref{1fe,,Creating Definition File Automatically}):
 @end enumerate
 
 @quotation
@@ -25568,7 +25624,7 @@ $ dlltool libmylib.dll -z libmylib.def --export-all-symbols
 Make sure that MSVS command-line tools are accessible on the path.
 
 @item 
-Create the Microsoft-style import library (see @ref{1ff,,MSVS-Style Import Library}):
+Create the Microsoft-style import library (see @ref{201,,MSVS-Style Import Library}):
 @end enumerate
 
 @quotation
@@ -25610,7 +25666,7 @@ or copy the DLL into into the directory containing the .exe.
 @end enumerate
 
 @node Debugging a DLL,Setting Stack Size from gnatlink,Using GNAT DLLs from Microsoft Visual Studio Applications,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information id37}@anchor{21c}@anchor{gnat_ugn/platform_specific_information debugging-a-dll}@anchor{21d}
+@anchor{gnat_ugn/platform_specific_information id37}@anchor{21e}@anchor{gnat_ugn/platform_specific_information debugging-a-dll}@anchor{21f}
 @subsubsection Debugging a DLL
 
 
@@ -25648,7 +25704,7 @@ tools suite used to build the DLL.
 @end menu
 
 @node Program and DLL Both Built with GCC/GNAT,Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Debugging a DLL
-@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{21e}@anchor{gnat_ugn/platform_specific_information id38}@anchor{21f}
+@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{220}@anchor{gnat_ugn/platform_specific_information id38}@anchor{221}
 @subsubsection Program and DLL Both Built with GCC/GNAT
 
 
@@ -25658,7 +25714,7 @@ the process. Let's suppose here that the main procedure is named
 @cite{ada_main} and that in the DLL there is an entry point named
 @cite{ada_dll}.
 
-The DLL (@ref{1f5,,Introduction to Dynamic Link Libraries (DLLs)}) and
+The DLL (@ref{1f7,,Introduction to Dynamic Link Libraries (DLLs)}) and
 program must have been built with the debugging information (see GNAT -g
 switch). Here are the step-by-step instructions for debugging it:
 
@@ -25698,7 +25754,7 @@ you can use the standard approach to debug the whole program
 (@ref{24,,Running and Debugging Ada Programs}).
 
 @node Program Built with Foreign Tools and DLL Built with GCC/GNAT,,Program and DLL Both Built with GCC/GNAT,Debugging a DLL
-@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{220}@anchor{gnat_ugn/platform_specific_information id39}@anchor{221}
+@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{222}@anchor{gnat_ugn/platform_specific_information id39}@anchor{223}
 @subsubsection Program Built with Foreign Tools and DLL Built with GCC/GNAT
 
 
@@ -25715,7 +25771,7 @@ example some C code built with Microsoft Visual C) and that there is a
 DLL named @cite{test.dll} containing an Ada entry point named
 @cite{ada_dll}.
 
-The DLL (see @ref{1f5,,Introduction to Dynamic Link Libraries (DLLs)}) must have
+The DLL (see @ref{1f7,,Introduction to Dynamic Link Libraries (DLLs)}) must have
 been built with debugging information (see GNAT @cite{-g} option).
 
 @subsubheading Debugging the DLL Directly
@@ -25854,7 +25910,7 @@ approach to debug a program as described in
 @ref{24,,Running and Debugging Ada Programs}.
 
 @node Setting Stack Size from gnatlink,Setting Heap Size from gnatlink,Debugging a DLL,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{134}@anchor{gnat_ugn/platform_specific_information id40}@anchor{222}
+@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{136}@anchor{gnat_ugn/platform_specific_information id40}@anchor{224}
 @subsubsection Setting Stack Size from @emph{gnatlink}
 
 
@@ -25897,7 +25953,7 @@ because the coma is a separator for this option.
 @end itemize
 
 @node Setting Heap Size from gnatlink,,Setting Stack Size from gnatlink,Mixed-Language Programming on Windows
-@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{135}@anchor{gnat_ugn/platform_specific_information id41}@anchor{223}
+@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{137}@anchor{gnat_ugn/platform_specific_information id41}@anchor{225}
 @subsubsection Setting Heap Size from @emph{gnatlink}
 
 
@@ -25930,7 +25986,7 @@ because the coma is a separator for this option.
 @end itemize
 
 @node Windows Specific Add-Ons,,Mixed-Language Programming on Windows,Microsoft Windows Topics
-@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{224}@anchor{gnat_ugn/platform_specific_information win32-specific-addons}@anchor{225}
+@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{226}@anchor{gnat_ugn/platform_specific_information win32-specific-addons}@anchor{227}
 @subsection Windows Specific Add-Ons
 
 
@@ -25943,7 +25999,7 @@ This section describes the Windows specific add-ons.
 @end menu
 
 @node Win32Ada,wPOSIX,,Windows Specific Add-Ons
-@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{226}@anchor{gnat_ugn/platform_specific_information id42}@anchor{227}
+@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{228}@anchor{gnat_ugn/platform_specific_information id42}@anchor{229}
 @subsubsection Win32Ada
 
 
@@ -25974,7 +26030,7 @@ gprbuild p.gpr
 @end quotation
 
 @node wPOSIX,,Win32Ada,Windows Specific Add-Ons
-@anchor{gnat_ugn/platform_specific_information id43}@anchor{228}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{229}
+@anchor{gnat_ugn/platform_specific_information id43}@anchor{22a}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{22b}
 @subsubsection wPOSIX
 
 
@@ -26007,7 +26063,7 @@ gprbuild p.gpr
 @end quotation
 
 @node Mac OS Topics,,Microsoft Windows Topics,Platform-Specific Information
-@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{2d}@anchor{gnat_ugn/platform_specific_information id44}@anchor{22a}
+@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{2d}@anchor{gnat_ugn/platform_specific_information id44}@anchor{22c}
 @section Mac OS Topics
 
 
@@ -26022,7 +26078,7 @@ platform.
 @end menu
 
 @node Codesigning the Debugger,,,Mac OS Topics
-@anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{22b}
+@anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{22d}
 @subsection Codesigning the Debugger
 
 
@@ -26103,7 +26159,7 @@ the location where you installed GNAT.  Also, be sure that users are
 in the Unix group @code{_developer}.
 
 @node Example of Binder Output File,Elaboration Order Handling in GNAT,Platform-Specific Information,Top
-@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{e}@anchor{gnat_ugn/example_of_binder_output doc}@anchor{22c}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{22d}
+@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{e}@anchor{gnat_ugn/example_of_binder_output doc}@anchor{22e}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{22f}
 @chapter Example of Binder Output File
 
 
@@ -26855,7 +26911,7 @@ elaboration code in your own application).
 @c -- Example: A |withing| unit has a |with| clause, it |withs| a |withed| unit
 
 @node Elaboration Order Handling in GNAT,Inline Assembler,Example of Binder Output File,Top
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order-handling-in-gnat}@anchor{f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat doc}@anchor{22e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id1}@anchor{22f}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-order-handling-in-gnat}@anchor{f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat doc}@anchor{230}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id1}@anchor{231}
 @chapter Elaboration Order Handling in GNAT
 
 
@@ -26887,7 +26943,7 @@ features.
 @end menu
 
 @node Elaboration Code,Checking the Elaboration Order,,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{230}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{231}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{232}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{233}
 @section Elaboration Code
 
 
@@ -27037,7 +27093,7 @@ to figure out which of these expressions will be true, and hence it
 is impossible to guarantee a safe order of elaboration at run time.
 
 @node Checking the Elaboration Order,Controlling the Elaboration Order,Elaboration Code,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat checking-the-elaboration-order}@anchor{232}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{233}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat checking-the-elaboration-order}@anchor{234}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{235}
 @section Checking the Elaboration Order
 
 
@@ -27141,7 +27197,7 @@ does such optimizations, but still the easiest conceptual model is to
 think of there being one variable per subprogram.
 
 @node Controlling the Elaboration Order,Controlling Elaboration in GNAT - Internal Calls,Checking the Elaboration Order,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{234}@anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order}@anchor{235}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{236}@anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-the-elaboration-order}@anchor{237}
 @section Controlling the Elaboration Order
 
 
@@ -27400,7 +27456,7 @@ code in the body makes calls to some other unit, so it is still necessary
 to use @cite{Elaborate_All} on such units.
 
 @node Controlling Elaboration in GNAT - Internal Calls,Controlling Elaboration in GNAT - External Calls,Controlling the Elaboration Order,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{236}@anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-elaboration-in-gnat-internal-calls}@anchor{237}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{238}@anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-elaboration-in-gnat-internal-calls}@anchor{239}
 @section Controlling Elaboration in GNAT - Internal Calls
 
 
@@ -27580,7 +27636,7 @@ guaranteed) for a program to be able to call a subprogram whose body
 is not yet elaborated, without raising a @cite{Program_Error} exception.
 
 @node Controlling Elaboration in GNAT - External Calls,Default Behavior in GNAT - Ensuring Safety,Controlling Elaboration in GNAT - Internal Calls,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{238}@anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-elaboration-in-gnat-external-calls}@anchor{239}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{23a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat controlling-elaboration-in-gnat-external-calls}@anchor{23b}
 @section Controlling Elaboration in GNAT - External Calls
 
 
@@ -27688,7 +27744,7 @@ provides a number of facilities for assisting the programmer in
 developing programs that are robust with respect to elaboration order.
 
 @node Default Behavior in GNAT - Ensuring Safety,Treatment of Pragma Elaborate,Controlling Elaboration in GNAT - External Calls,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id7}@anchor{23a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat default-behavior-in-gnat-ensuring-safety}@anchor{23b}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id7}@anchor{23c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat default-behavior-in-gnat-ensuring-safety}@anchor{23d}
 @section Default Behavior in GNAT - Ensuring Safety
 
 
@@ -27790,7 +27846,7 @@ is clearly safer to rely on compile and link time checks rather than
 run-time checks. However, in the case of legacy code, it may be
 difficult to meet the requirements of the static model. This
 issue is further discussed in
-@ref{23c,,What to Do If the Default Elaboration Behavior Fails}.
+@ref{23e,,What to Do If the Default Elaboration Behavior Fails}.
 
 Note that the static model provides a strict subset of the allowed
 behavior and programs of the Ada Reference Manual, so if you do
@@ -27800,7 +27856,7 @@ work using the dynamic model, providing that you remove any
 pragma Elaborate statements from the source.
 
 @node Treatment of Pragma Elaborate,Elaboration Issues for Library Tasks,Default Behavior in GNAT - Ensuring Safety,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat treatment-of-pragma-elaborate}@anchor{23d}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{23e}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat treatment-of-pragma-elaborate}@anchor{23f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{240}
 @section Treatment of Pragma Elaborate
 
 
@@ -27839,7 +27895,7 @@ When using the static mode with @emph{-gnatwl}, any use of
 problems.
 
 @node Elaboration Issues for Library Tasks,Mixing Elaboration Models,Treatment of Pragma Elaborate,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-issues-for-library-tasks}@anchor{23f}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id9}@anchor{240}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-issues-for-library-tasks}@anchor{241}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id9}@anchor{242}
 @section Elaboration Issues for Library Tasks
 
 
@@ -28202,7 +28258,7 @@ no task receives an entry call before elaboration of all units is completed.
 @end itemize
 
 @node Mixing Elaboration Models,What to Do If the Default Elaboration Behavior Fails,Elaboration Issues for Library Tasks,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{241}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{242}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{243}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{244}
 @section Mixing Elaboration Models
 
 
@@ -28267,7 +28323,7 @@ allowing the main application that uses this subsystem to be compiled
 using the more reliable default static model.
 
 @node What to Do If the Default Elaboration Behavior Fails,Elaboration for Indirect Calls,Mixing Elaboration Models,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id11}@anchor{243}@anchor{gnat_ugn/elaboration_order_handling_in_gnat what-to-do-if-the-default-elaboration-behavior-fails}@anchor{23c}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id11}@anchor{245}@anchor{gnat_ugn/elaboration_order_handling_in_gnat what-to-do-if-the-default-elaboration-behavior-fails}@anchor{23e}
 @section What to Do If the Default Elaboration Behavior Fails
 
 
@@ -28378,7 +28434,7 @@ all subprograms declared in this spec.
 @item 
 Use Pragma Elaborate.
 
-As previously described in section @ref{23d,,Treatment of Pragma Elaborate},
+As previously described in section @ref{23f,,Treatment of Pragma Elaborate},
 GNAT in static mode assumes that a @cite{pragma} Elaborate indicates correctly
 that no elaboration checks are required on calls to the designated unit.
 There may be cases in which the caller knows that no transitive calls
@@ -28511,7 +28567,7 @@ C-tests are indeed correct (it is less efficient, but efficiency is
 not a factor in running the ACATS tests.)
 
 @node Elaboration for Indirect Calls,Summary of Procedures for Elaboration Control,What to Do If the Default Elaboration Behavior Fails,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{244}@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-for-indirect-calls}@anchor{245}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{246}@anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-for-indirect-calls}@anchor{247}
 @section Elaboration for Indirect Calls
 
 
@@ -28545,7 +28601,7 @@ switch.
 See @cite{debug.adb} for documentation on the @emph{-gnatd...} debug switches.
 
 @node Summary of Procedures for Elaboration Control,Other Elaboration Order Considerations,Elaboration for Indirect Calls,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id13}@anchor{246}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{247}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id13}@anchor{248}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{249}
 @section Summary of Procedures for Elaboration Control
 
 
@@ -28569,7 +28625,7 @@ and, if you are sure there really are no elaboration problems,
 use a global pragma @cite{Suppress (Elaboration_Check)}.
 
 @node Other Elaboration Order Considerations,Determining the Chosen Elaboration Order,Summary of Procedures for Elaboration Control,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat id14}@anchor{248}@anchor{gnat_ugn/elaboration_order_handling_in_gnat other-elaboration-order-considerations}@anchor{249}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat id14}@anchor{24a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat other-elaboration-order-considerations}@anchor{24b}
 @section Other Elaboration Order Considerations
 
 
@@ -28644,8 +28700,8 @@ and
 
 @example
 Init_Constants spec
-Init_Constants body
 Constants spec
+Init_Constants body
 Calc spec
 Main body
 @end example
@@ -28687,7 +28743,7 @@ compilers can choose different orders.
 However, GNAT does attempt to diagnose the common situation where there
 are uninitialized variables in the visible part of a package spec, and the
 corresponding package body has an elaboration block that directly or
-indirectly initialized one or more of these variables. This is the situation
+indirectly initializes one or more of these variables. This is the situation
 in which a pragma Elaborate_Body is usually desirable, and GNAT will generate
 a warning that suggests this addition if it detects this situation.
 
@@ -28716,7 +28772,7 @@ and figuring out which is correct, and then adding the necessary
 @cite{Elaborate} or @cite{Elaborate_All} pragmas to ensure the desired order.
 
 @node Determining the Chosen Elaboration Order,,Other Elaboration Order Considerations,Elaboration Order Handling in GNAT
-@anchor{gnat_ugn/elaboration_order_handling_in_gnat determining-the-chosen-elaboration-order}@anchor{24a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id15}@anchor{24b}
+@anchor{gnat_ugn/elaboration_order_handling_in_gnat determining-the-chosen-elaboration-order}@anchor{24c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id15}@anchor{24d}
 @section Determining the Chosen Elaboration Order
 
 
@@ -28856,7 +28912,7 @@ gdbstr (body)
 @end example
 
 @node Inline Assembler,GNU Free Documentation License,Elaboration Order Handling in GNAT,Top
-@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{10}@anchor{gnat_ugn/inline_assembler doc}@anchor{24c}@anchor{gnat_ugn/inline_assembler id1}@anchor{24d}
+@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{10}@anchor{gnat_ugn/inline_assembler doc}@anchor{24e}@anchor{gnat_ugn/inline_assembler id1}@anchor{24f}
 @chapter Inline Assembler
 
 
@@ -28915,7 +28971,7 @@ and with assembly language programming.
 @end menu
 
 @node Basic Assembler Syntax,A Simple Example of Inline Assembler,,Inline Assembler
-@anchor{gnat_ugn/inline_assembler id2}@anchor{24e}@anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{24f}
+@anchor{gnat_ugn/inline_assembler id2}@anchor{250}@anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{251}
 @section Basic Assembler Syntax
 
 
@@ -29031,7 +29087,7 @@ Intel: Destination first; for example @cite{mov eax@comma{} 4}@w{ }
 
 
 @node A Simple Example of Inline Assembler,Output Variables in Inline Assembler,Basic Assembler Syntax,Inline Assembler
-@anchor{gnat_ugn/inline_assembler a-simple-example-of-inline-assembler}@anchor{250}@anchor{gnat_ugn/inline_assembler id3}@anchor{251}
+@anchor{gnat_ugn/inline_assembler a-simple-example-of-inline-assembler}@anchor{252}@anchor{gnat_ugn/inline_assembler id3}@anchor{253}
 @section A Simple Example of Inline Assembler
 
 
@@ -29180,7 +29236,7 @@ If there are no errors, @emph{as} will generate an object file
 @code{nothing.out}.
 
 @node Output Variables in Inline Assembler,Input Variables in Inline Assembler,A Simple Example of Inline Assembler,Inline Assembler
-@anchor{gnat_ugn/inline_assembler id4}@anchor{252}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{253}
+@anchor{gnat_ugn/inline_assembler id4}@anchor{254}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{255}
 @section Output Variables in Inline Assembler
 
 
@@ -29547,7 +29603,7 @@ end Get_Flags_3;
 @end quotation
 
 @node Input Variables in Inline Assembler,Inlining Inline Assembler Code,Output Variables in Inline Assembler,Inline Assembler
-@anchor{gnat_ugn/inline_assembler id5}@anchor{254}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{255}
+@anchor{gnat_ugn/inline_assembler id5}@anchor{256}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{257}
 @section Input Variables in Inline Assembler
 
 
@@ -29636,7 +29692,7 @@ _increment__incr.1:
 @end quotation
 
 @node Inlining Inline Assembler Code,Other Asm Functionality,Input Variables in Inline Assembler,Inline Assembler
-@anchor{gnat_ugn/inline_assembler id6}@anchor{256}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{257}
+@anchor{gnat_ugn/inline_assembler id6}@anchor{258}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{259}
 @section Inlining Inline Assembler Code
 
 
@@ -29707,7 +29763,7 @@ movl %esi,%eax
 thus saving the overhead of stack frame setup and an out-of-line call.
 
 @node Other Asm Functionality,,Inlining Inline Assembler Code,Inline Assembler
-@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{258}@anchor{gnat_ugn/inline_assembler id7}@anchor{259}
+@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{25a}@anchor{gnat_ugn/inline_assembler id7}@anchor{25b}
 @section Other @cite{Asm} Functionality
 
 
@@ -29722,7 +29778,7 @@ and @cite{Volatile}, which inhibits unwanted optimizations.
 @end menu
 
 @node The Clobber Parameter,The Volatile Parameter,,Other Asm Functionality
-@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{25a}@anchor{gnat_ugn/inline_assembler id8}@anchor{25b}
+@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{25c}@anchor{gnat_ugn/inline_assembler id8}@anchor{25d}
 @subsection The @cite{Clobber} Parameter
 
 
@@ -29786,7 +29842,7 @@ Use 'register' name @cite{memory} if you changed a memory location
 @end itemize
 
 @node The Volatile Parameter,,The Clobber Parameter,Other Asm Functionality
-@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{25c}@anchor{gnat_ugn/inline_assembler id9}@anchor{25d}
+@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{25e}@anchor{gnat_ugn/inline_assembler id9}@anchor{25f}
 @subsection The @cite{Volatile} Parameter
 
 
@@ -29822,7 +29878,7 @@ to @cite{True} only if the compiler's optimizations have created
 problems.
 
 @node GNU Free Documentation License,Index,Inline Assembler,Top
-@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license doc}@anchor{25e}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{25f}
+@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license doc}@anchor{260}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{261}
 @chapter GNU Free Documentation License