From: Arnaud Charlet Date: Tue, 20 Oct 2015 10:41:38 +0000 (+0000) Subject: gnat_ugn.texi, [...]: Regenerate. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e42d2186bdf3c9de8316e718b330f0c3c3701e58;p=gcc.git gnat_ugn.texi, [...]: Regenerate. * gnat_ugn.texi, gnat_rm.texi: Regenerate. * doc/gnat_ugn/gnat_project_manager.rst, doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/the_gnat_compilation_model.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/implementation_defined_characteristics.rst: Update doc. From-SVN: r229046 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 927a112082e..db9d2158c42 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2015-10-20 Arnaud Charlet + + * gnat_ugn.texi, gnat_rm.texi: Regenerate. + * doc/gnat_ugn/gnat_project_manager.rst, + doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_ugn/the_gnat_compilation_model.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/implementation_defined_characteristics.rst: Update doc. + 2015-10-20 Arnaud Charlet * gcc-interface/Makefile.in: Update targets. diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst b/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst index f26dd912998..68c5039b41c 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst @@ -22,48 +22,48 @@ and other operating systems is an important consideration. The numbers in each entry below correspond to the paragraph numbers in the Ada Reference Manual. -* +* "Whether or not each recommendation given in Implementation Advice is followed. See 1.1.2(37)." See :ref:`Implementation_Advice`. -* +* "Capacity limitations of the implementation. See 1.1.3(3)." The complexity of programs that can be processed is limited only by the total amount of available virtual memory, and disk space for the generated object files. -* +* "Variations from the standard that are impractical to avoid given the implementation's execution environment. See 1.1.3(6)." There are no variations from the standard. -* +* "Which code_statements cause external interactions. See 1.1.3(10)." Any `code_statement` can potentially cause external interactions. -* +* "The coded representation for the text of an Ada program. See 2.1(4)." See separate section on source representation. -* +* "The control functions allowed in comments. See 2.1(14)." See separate section on source representation. -* +* "The representation for an end of line. See 2.2(2)." See separate section on source representation. -* +* "Maximum supported line length and lexical element length. See 2.2(15)." @@ -74,19 +74,19 @@ sets the maximum to 79) or *-gnatyMnn* which allows the maximum line length to be specified to be any value up to 32767. The maximum length of a lexical element is the same as the maximum line length. -* +* "Implementation defined pragmas. See 2.8(14)." See :ref:`Implementation_Defined_Pragmas`. -* +* "Effect of pragma `Optimize`. See 2.8(27)." Pragma `Optimize`, if given with a `Time` or `Space` parameter, checks that the optimization flag is set, and aborts if it is not. -* +* "The sequence of characters of the value returned by ``S'Image`` when some of the graphic characters of ``S'Wide_Image`` are not defined in `Character`. See @@ -96,7 +96,7 @@ The sequence of characters is as defined by the wide character encoding method used for the source. See section on source representation for further details. -* +* "The predefined integer types declared in `Standard`. See 3.5.4(25)." @@ -106,31 +106,31 @@ Type Representation *Short_Short_Integer* 8 bit signed *Short_Integer* (Short) 16 bit signed *Integer* 32 bit signed -*Long_Integer* 64 bit signed (on most 64 bit targets, +*Long_Integer* 64 bit signed (on most 64 bit targets, depending on the C definition of long). 32 bit signed (all other targets) *Long_Long_Integer* 64 bit signed ====================== ======================================= -* +* "Any nonstandard integer types and the operators defined for them. See 3.5.4(26)." There are no nonstandard integer types. -* +* "Any nonstandard real types and the operators defined for them. See 3.5.6(8)." There are no nonstandard real types. -* +* "What combinations of requested decimal precision and range are supported for floating point types. See 3.5.7(7)." The precision and range is as defined by the IEEE standard. -* +* "The predefined floating point types declared in `Standard`. See 3.5.7(16)." @@ -143,12 +143,12 @@ Type Representation *Long_Long_Float* 64 bit IEEE long (80 bit IEEE long on x86 processors) ====================== ==================================================== -* +* "The small of an ordinary fixed point type. See 3.5.9(8)." `Fine_Delta` is 2**(-63) -* +* "What combinations of small, range, and digits are supported for fixed point types. See 3.5.9(10)." @@ -160,37 +160,37 @@ Text_IO is accurate to only 53 bits, rather than the full mantissa. This is because floating-point conversions are used to convert fixed point. -* +* "The result of `Tags.Expanded_Name` for types declared within an unnamed `block_statement`. See 3.9(10)." Block numbers of the form `B`nnn``, where `nnn` is a decimal integer are allocated. -* +* "Implementation-defined attributes. See 4.1.4(12)." See :ref:`Implementation_Defined_Attributes`. -* +* "Any implementation-defined time types. See 9.6(6)." There are no implementation-defined time types. -* +* "The time base associated with relative delays." See 9.6(20). The time base used is that provided by the C library function `gettimeofday`. -* +* "The time base of the type `Calendar.Time`. See 9.6(23)." The time base used is that provided by the C library function `gettimeofday`. -* +* "The time zone used for package `Calendar` operations. See 9.6(24)." @@ -198,13 +198,13 @@ The time zone used by package `Calendar` is the current system time zone setting for local time, as accessed by the C library function `localtime`. -* +* "Any limit on `delay_until_statements` of `select_statements`. See 9.6(29)." There are no such limits. -* +* "Whether or not two non-overlapping parts of a composite object are independently addressable, in the case where packing, record layout, or `Component_Size` is specified for the object. See @@ -213,13 +213,13 @@ There are no such limits. Separate components are independently addressable if they do not share overlapping storage units. -* +* "The representation for a compilation. See 10.1(2)." A compilation is represented by a sequence of files presented to the compiler in a single invocation of the *gcc* command. -* +* "Any restrictions on compilations that contain multiple compilation_units. See 10.1(4)." @@ -227,13 +227,13 @@ No single file can contain more than one compilation unit, but any sequence of files can be presented to the compiler as a single compilation. -* +* "The mechanisms for creating an environment and for adding and replacing compilation units. See 10.1.4(3)." See separate section on compilation model. -* +* "The manner of explicitly assigning library units to a partition. See 10.2(2)." @@ -256,7 +256,7 @@ be included automatically). For full details on the use of these options, refer to the `GNAT Make Program gnatmake` in the :title:`GNAT User's Guide`. -* +* "The implementation-defined means, if any, of specifying which compilation units are needed by a given compilation unit. See 10.2(2)." @@ -266,14 +266,14 @@ the Ada Reference Manual section 10.2(2-6). There are no implementation-defined pragmas or other implementation-defined means for specifying needed units. -* +* "The manner of designating the main subprogram of a partition. See 10.2(7)." The main program is designated by providing the name of the corresponding :file:`ALI` file as the input parameter to the binder. -* +* "The order of elaboration of `library_items`. See 10.2(18)." @@ -286,7 +286,7 @@ clauses of a unit to determine the probably best choice, and third by elaborating in alphabetical order of unit names where a choice still remains. -* +* "Parameter passing and function return for the main subprogram. See 10.2(21)." @@ -295,7 +295,7 @@ returning an integer type. In the latter case, the returned integer value is the return code of the program (overriding any value that may have been set by a call to `Ada.Command_Line.Set_Exit_Status`). -* +* "The mechanisms for building and running partitions. See 10.2(24)." @@ -305,13 +305,13 @@ of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. See the separate GLADE manual for details. -* +* "The details of program execution, including program termination. See 10.2(25)." See separate section on compilation model. -* +* "The semantics of any non-active partitions supported by the implementation. See 10.2(28)." @@ -319,21 +319,21 @@ Passive partitions are supported on targets where shared memory is provided by the operating system. See the GLADE reference manual for further details. -* +* "The information returned by `Exception_Message`. See 11.4.1(10)." Exception message returns the null string unless a specific message has been passed by the program. -* +* "The result of `Exceptions.Exception_Name` for types declared within an unnamed `block_statement`. See 11.4.1(12)." Blocks have implementation defined names of the form `B`nnn`` where `nnn` is an integer. -* +* "The information returned by `Exception_Information`. See 11.4.1(13)." @@ -350,9 +350,9 @@ where * `nnnn` is the fully qualified name of the exception in all upper case letters. This line is always present. - + * `mmmm` is the message (this line present only if message is non-null) - + * `ppp` is the Process Id value as a decimal integer (this line is present only if the Process Id is nonzero). Currently we are not making use of this field. @@ -366,35 +366,28 @@ where The line terminator sequence at the end of each line, including the last line is a single `LF` character (`16#0A#`). -* +* "Implementation-defined check names. See 11.5(27)." -The implementation defined check name Alignment_Check controls checking of -address clause values for proper alignment (that is, the address supplied -must be consistent with the alignment of the type). - -The implementation defined check name Predicate_Check controls whether -predicate checks are generated. - -The implementation defined check name Validity_Check controls whether -validity checks are generated. - -In addition, a user program can add implementation-defined check names -by means of the pragma Check_Name. +The implementation defined check names include Alignment_Check, +Atomic_Synchronization, Duplicated_Tag_Check, Container_Checks, +Tampering_Check, Predicate_Check, and Validity_Check. In addition, a user +program can add implementation-defined check names by means of the pragma +Check_Name. See the description of pragma `Suppress` for full details. -* +* "The interpretation of each aspect of representation. See 13.1(20)." See separate section on data representations. -* +* "Any restrictions placed upon representation items. See 13.1(20)." See separate section on data representations. -* +* "The meaning of `Size` for indefinite subtypes. See 13.3(48)." @@ -402,27 +395,27 @@ Size for an indefinite subtype is the maximum possible size, except that for the case of a subprogram parameter, the size of the parameter object is the actual size. -* +* "The default external representation for a type tag. See 13.3(75)." The default external representation for a type tag is the fully expanded name of the type in upper case letters. -* +* "What determines whether a compilation unit is the same in two different partitions. See 13.3(76)." A compilation unit is the same in two different partitions if and only if it derives from the same source file. -* +* "Implementation-defined components. See 13.5.1(15)." The only implementation defined component is the tag for a tagged type, which contains a pointer to the dispatching table. -* +* "If `Word_Size` = `Storage_Unit`, the default bit ordering. See 13.5.3(5)." @@ -430,7 +423,7 @@ which contains a pointer to the dispatching table. implementation, so no non-default bit ordering is supported. The default bit ordering corresponds to the natural endianness of the target architecture. -* +* "The contents of the visible part of package `System` and its language-defined children. See 13.7(2)." @@ -443,14 +436,14 @@ System. Max_Priority : constant Positive := Priority'Last; Max_Interrupt_Priority : constant Positive := Interrupt_Priority'Last; -* +* "The contents of the visible part of package `System.Machine_Code`, and the meaning of `code_statements`. See 13.8(7)." See the definition and documentation in file :file:`s-maccod.ads`. -* +* "The effect of unchecked conversion. See 13.9(11)." Unchecked conversion between types of the same size @@ -467,7 +460,7 @@ unconstrained array are not permitted. If the target alignment is greater than the source alignment, then a copy of the result is made with appropriate alignment -* +* "The semantics of operations on invalid representations. See 13.9.2(10-11)." @@ -492,7 +485,7 @@ result in erroneous behavior. For example executing: As indicated, an exception is raised on the array assignment, but not on the simple assignment of the invalid negative value from Y to Z. -* +* "The manner of choosing a storage pool for an access type when `Storage_Pool` is not specified for the type. See 13.11(17)." @@ -505,7 +498,7 @@ library units `System.Pool_Global`, `System.Pool_Size` and :file:`s-pooglo.ads` and :file:`s-pooloc.ads` for full details on the default pools used. -* +* "Whether or not the implementation provides user-accessible names for the standard pool type(s). See 13.11(17)." @@ -513,14 +506,14 @@ See documentation in the sources of the run time mentioned in the previous paragraph. All these pools are accessible by means of `with`'ing these units. -* +* "The meaning of `Storage_Size`. See 13.11(18)." `Storage_Size` is measured in storage units, and refers to the total space available for an access type collection, or to the primary stack space for a task. -* +* "Implementation-defined aspects of storage pools. See 13.11(22)." @@ -528,13 +521,13 @@ See documentation in the sources of the run time mentioned in the paragraph about standard storage pools above for details on GNAT-defined aspects of storage pools. -* +* "The set of restrictions allowed in a pragma `Restrictions`. See 13.12(7)." See :ref:`Standard_and_Implementation_Defined_Restrictions`. -* +* "The consequences of violating limitations on `Restrictions` pragmas. See 13.12(9)." @@ -542,7 +535,7 @@ Restrictions that can be checked at compile time result in illegalities if violated. Currently there are no other consequences of violating restrictions. -* +* "The representation used by the `Read` and `Write` attributes of elementary types in terms of stream elements. See 13.13.2(9)." @@ -551,13 +544,13 @@ The representation is the in-memory representation of the base type of the type, using the number of bits corresponding to the ``type'Size`` value, and the natural ordering of the machine. -* +* "The names and characteristics of the numeric subtypes declared in the visible part of package `Standard`. See A.1(3)." See items describing the integer and floating-point types supported. -* +* "The string returned by `Character_Set_Version`. See A.3.5(3)." @@ -565,14 +558,14 @@ See items describing the integer and floating-point types supported. the string "Unicode 4.0", referring to version 4.0 of the Unicode specification. -* +* "The accuracy actually achieved by the elementary functions. See A.5.1(1)." The elementary functions correspond to the functions available in the C library. Only fast math mode is implemented. -* +* "The sign of a zero result from some of the operators or functions in `Numerics.Generic_Elementary_Functions`, when `Float_Type'Signed_Zeros` is `True`. See A.5.1(46)." @@ -580,19 +573,19 @@ library. Only fast math mode is implemented. The sign of zeroes follows the requirements of the IEEE 754 standard on floating-point. -* +* "The value of `Numerics.Float_Random.Max_Image_Width`. See A.5.2(27)." Maximum image width is 6864, see library file :file:`s-rannum.ads`. -* +* "The value of `Numerics.Discrete_Random.Max_Image_Width`. See A.5.2(27)." Maximum image width is 6864, see library file :file:`s-rannum.ads`. -* +* "The algorithms for random number generation. See A.5.2(32)." @@ -600,7 +593,7 @@ The algorithm is the Mersenne Twister, as documented in the source file :file:`s-rannum.adb`. This version of the algorithm has a period of 2**19937-1. -* +* "The string representation of a random number generator's state. See A.5.2(38)." @@ -608,7 +601,7 @@ The value returned by the Image function is the concatenation of the fixed-width decimal representations of the 624 32-bit integers of the state vector. -* +* "The minimum time interval between calls to the time-dependent Reset procedure that are guaranteed to initiate different random number sequences. See A.5.2(45)." @@ -616,7 +609,7 @@ of the state vector. The minimum period between reset calls to guarantee distinct series of random numbers is one microsecond. -* +* "The values of the `Model_Mantissa`, `Model_Emin`, `Model_Epsilon`, `Model`, `Safe_First`, and `Safe_Last` attributes, if the Numerics @@ -625,14 +618,14 @@ random numbers is one microsecond. Run the compiler with *-gnatS* to produce a listing of package `Standard`, has the values of all numeric attributes. -* +* "Any implementation-defined characteristics of the input-output packages. See A.7(14)." There are no special implementation defined characteristics for these packages. -* +* "The value of `Buffer_Size` in `Storage_IO`. See A.9(10)." @@ -640,14 +633,14 @@ All type representations are contiguous, and the `Buffer_Size` is the value of ``type'Size`` rounded up to the next storage unit boundary. -* +* "External files for standard input, standard output, and standard error See A.10(5)." These files are mapped onto the files provided by the C streams libraries. See source file :file:`i-cstrea.ads` for further details. -* +* "The accuracy of the value produced by `Put`. See A.10.9(36)." @@ -655,26 +648,26 @@ If more digits are requested in the output than are represented by the precision of the value, zeroes are output in the corresponding least significant digit positions. -* +* "The meaning of `Argument_Count`, `Argument`, and `Command_Name`. See A.15(1)." These are mapped onto the `argv` and `argc` parameters of the main program in the natural manner. -* +* "The interpretation of the `Form` parameter in procedure `Create_Directory`. See A.16(56)." The `Form` parameter is not used. -* +* "The interpretation of the `Form` parameter in procedure `Create_Path`. See A.16(60)." The `Form` parameter is not used. -* +* "The interpretation of the `Form` parameter in procedure `Copy_File`. See A.16(68)." @@ -693,7 +686,7 @@ The only possible values for preserve= are: ================== =================================================================== Value Meaning ================== =================================================================== -*no_attributes* Do not try to preserve any file attributes. This is the +*no_attributes* Do not try to preserve any file attributes. This is the default if no preserve= is found in Form. *all_attributes* Try to preserve all file attributes (timestamps, access rights). *timestamps* Preserve the timestamp of the copied file, but not the other @@ -705,11 +698,11 @@ The only possible values for mode= are: ============== =============================================================================== Value Meaning ============== =============================================================================== -*copy* Only do the copy if the destination file does not already exist. +*copy* Only do the copy if the destination file does not already exist. If it already exists, Copy_File fails. *overwrite* Copy the file in all cases. Overwrite an already existing destination file. -*append* Append the original file to the destination file. If the destination file - does not exist, the destination file is a copy of the source file. +*append* Append the original file to the destination file. If the destination file + does not exist, the destination file is a copy of the source file. When mode=append, the field preserve=, if it exists, is not taken into account. ============== =============================================================================== @@ -727,7 +720,7 @@ Examples of incorrect Forms:: Form => "preserve=junk" Form => "mode=internal, preserve=timestamps" -* +* "The interpretation of the `Pattern` parameter, when not the null string, in the `Start_Search` and `Search` procedures. See A.16(104) and A.16(112)." @@ -738,7 +731,7 @@ according to the syntax of regular expressions as defined in the See :ref:`GNAT.Regexp_(g-regexp.ads)`. -* +* "Implementation-defined convention names. See B.1(11)." The following convention names are supported @@ -784,12 +777,12 @@ Convention Name Interpretation implementations, these names are accepted silently. ======================= ============================================================================== -* +* "The meaning of link names. See B.1(36)." Link names are the actual names used by the linker. -* +* "The manner of choosing link names when neither the link name nor the address of an imported or exported entity is specified. See B.1(36)." @@ -798,7 +791,7 @@ The default linker name is that which would be assigned by the relevant external language, interpreting the Ada name as being in all lower case letters. -* +* "The effect of pragma `Linker_Options`. See B.1(37)." The string passed to `Linker_Options` is presented uninterpreted as @@ -815,20 +808,20 @@ list of options passed to the linker is in reverse order of the elaboration order. For example, linker options for a body always appear before the options from the corresponding package spec. -* +* "The contents of the visible part of package `Interfaces` and its language-defined descendants. See B.2(1)." See files with prefix :file:`i-` in the distributed library. -* +* "Implementation-defined children of package `Interfaces`. The contents of the visible part of package `Interfaces`. See B.2(11)." See files with prefix :file:`i-` in the distributed library. -* +* "The types `Floating`, `Long_Floating`, `Binary`, `Long_Binary`, `Decimal_ Element`, and `COBOL_Character`; and the initialization of the variables @@ -848,18 +841,18 @@ COBOL Ada For initialization, see the file :file:`i-cobol.ads` in the distributed library. -* +* "Support for access to machine instructions. See C.1(1)." See documentation in file :file:`s-maccod.ads` in the distributed library. -* +* "Implementation-defined aspects of access to machine operations. See C.1(9)." See documentation in file :file:`s-maccod.ads` in the distributed library. -* +* "Implementation-defined aspects of interrupts. See C.3(2)." Interrupts are mapped to signals or conditions as appropriate. See @@ -867,14 +860,14 @@ definition of unit `Ada.Interrupt_Names` in source file :file:`a-intnam.ads` for details on the interrupts supported on a particular target. -* +* "Implementation-defined aspects of pre-elaboration. See C.4(13)." GNAT does not permit a partition to be restarted without reloading, except under control of the debugger. -* +* "The semantics of pragma `Discard_Names`. See C.5(7)." Pragma `Discard_Names` causes names of enumeration literals to @@ -882,7 +875,7 @@ be suppressed. In the presence of this pragma, the Image attribute provides the image of the Pos of the literal, and Value accepts Pos values. -* +* "The result of the `Task_Identification.Image` attribute. See C.7.1(7)." @@ -910,14 +903,14 @@ No_Implicit_Heap_Allocation is in effect, the image reduces to the numeric suffix, that is to say the hexadecimal representation of the virtual address of the control block of the task. -* +* "The value of `Current_Task` when in a protected entry or interrupt handler. See C.7.1(17)." Protected entries or interrupt handlers can be executed by any convenient thread, so the value of `Current_Task` is undefined. -* +* "The effect of calling `Current_Task` from an entry body or interrupt handler. See C.7.1(19)." @@ -925,13 +918,13 @@ The effect of calling `Current_Task` from an entry body or interrupt handler is to return the identification of the task currently executing the code. -* +* "Implementation-defined aspects of `Task_Attributes`. See C.7.2(19)." There are no implementation-defined aspects of `Task_Attributes`. -* +* "Values of all `Metrics`. See D(2)." The metrics information for GNAT depends on the performance of the @@ -943,25 +936,25 @@ information on the performance of the underlying operating system, on the exact target in use, this information can be used to determine the required metrics. -* +* "The declarations of `Any_Priority` and `Priority`. See D.1(11)." See declarations in file :file:`system.ads`. -* +* "Implementation-defined execution resources. See D.1(15)." There are no implementation-defined execution resources. -* +* "Whether, on a multiprocessor, a task that is waiting for access to a protected object keeps its processor busy. See D.2.1(3)." On a multi-processor, a task that is waiting for access to a protected object does not keep its processor busy. -* +* "The affect of implementation defined execution resources on task dispatching. See D.2.1(9)." @@ -969,26 +962,26 @@ Tasks map to threads in the threads package used by GNAT. Where possible and appropriate, these threads correspond to native threads of the underlying operating system. -* +* "Implementation-defined `policy_identifiers` allowed in a pragma `Task_Dispatching_Policy`. See D.2.2(3)." There are no implementation-defined policy-identifiers allowed in this pragma. -* +* "Implementation-defined aspects of priority inversion. See D.2.2(16)." Execution of a task cannot be preempted by the implementation processing of delay expirations for lower priority tasks. -* +* "Implementation-defined task dispatching. See D.2.2(18)." The policy is the same as that of the underlying threads implementation. -* +* "Implementation-defined `policy_identifiers` allowed in a pragma `Locking_Policy`. See D.3(4)." @@ -1002,26 +995,26 @@ requesting the lock. On targets that support the read/write lock allowing multiple propected object functions to enter concurrently. -* +* "Default ceiling priorities. See D.3(10)." The ceiling priority of protected objects of the type `System.Interrupt_Priority'Last` as described in the Ada Reference Manual D.3(10), -* +* "The ceiling of any protected object used internally by the implementation. See D.3(16)." The ceiling priority of internal protected objects is `System.Priority'Last`. -* +* "Implementation-defined queuing policies. See D.4(1)." There are no implementation-defined queuing policies. -* +* "On a multiprocessor, any conditions that cause the completion of an aborted construct to be delayed later than what is specified for a single processor. See D.6(3)." @@ -1029,59 +1022,59 @@ There are no implementation-defined queuing policies. The semantics for abort on a multi-processor is the same as on a single processor, there are no further delays. -* +* "Any operations that implicitly require heap storage allocation. See D.7(8)." The only operation that implicitly requires heap storage allocation is task creation. -* +* "What happens when a task terminates in the presence of pragma `No_Task_Termination`. See D.7(15)." Execution is erroneous in that case. -* +* "Implementation-defined aspects of pragma `Restrictions`. See D.7(20)." There are no such implementation-defined aspects. -* +* "Implementation-defined aspects of package `Real_Time`. See D.8(17)." There are no implementation defined aspects of package `Real_Time`. -* +* "Implementation-defined aspects of `delay_statements`. See D.9(8)." Any difference greater than one microsecond will cause the task to be delayed (see D.9(7)). -* +* "The upper bound on the duration of interrupt blocking caused by the implementation. See D.12(5)." The upper bound is determined by the underlying operating system. In no cases is it more than 10 milliseconds. -* +* "The means for creating and executing distributed programs. See E(5)." The GLADE package provides a utility GNATDIST for creating and executing distributed programs. See the GLADE reference manual for further details. -* +* "Any events that can result in a partition becoming inaccessible. See E.1(7)." See the GLADE reference manual for full details on such events. -* +* "The scheduling policies, treatment of priorities, and management of shared resources between partitions in certain cases. See E.1(11)." @@ -1089,7 +1082,7 @@ See the GLADE reference manual for full details on such events. See the GLADE reference manual for full details on these aspects of multi-partition execution. -* +* "Events that cause the version of a compilation unit to change. See E.3(5)." @@ -1099,27 +1092,27 @@ to change. No other actions cause the version number to change. All changes are significant except those which affect only layout, capitalization or comments. -* +* "Whether the execution of the remote subprogram is immediately aborted as a result of cancellation. See E.4(13)." See the GLADE reference manual for details on the effect of abort in a distributed application. -* +* "Implementation-defined aspects of the PCS. See E.5(25)." See the GLADE reference manual for a full description of all implementation defined aspects of the PCS. -* +* "Implementation-defined interfaces in the PCS. See E.5(26)." See the GLADE reference manual for a full description of all implementation defined interfaces. -* +* "The values of named numbers in the package `Decimal`. See F.2(7)." @@ -1133,26 +1126,26 @@ Named Number Value *Max_Decimal_Digits* 18 ==================== ========== -* +* "The value of `Max_Picture_Length` in the package `Text_IO.Editing`. See F.3.3(16)." 64 -* +* "The value of `Max_Picture_Length` in the package `Wide_Text_IO.Editing`. See F.3.4(5)." 64 -* +* "The accuracy actually achieved by the complex elementary functions and by other complex arithmetic operations. See G.1(1)." Standard library functions are used for the complex arithmetic operations. Only fast math mode is currently supported. -* +* "The sign of a zero result (or a component thereof) from any operator or function in `Numerics.Generic_Complex_Types`, when `Real'Signed_Zeros` is True. See G.1.1(53)." @@ -1160,7 +1153,7 @@ operations. Only fast math mode is currently supported. The signs of zero values are as recommended by the relevant implementation advice. -* +* "The sign of a zero result (or a component thereof) from any operator or function in `Numerics.Generic_Complex_Elementary_Functions`, when @@ -1169,14 +1162,14 @@ implementation advice. The signs of zero values are as recommended by the relevant implementation advice. -* +* "Whether the strict mode or the relaxed mode is the default. See G.2(2)." The strict mode is the default. There is no separate relaxed mode. GNAT provides a highly efficient implementation of strict mode. -* +* "The result interval in certain cases of fixed-to-float conversion. See G.2.1(10)." @@ -1184,7 +1177,7 @@ For cases where the result interval is implementation dependent, the accuracy is that provided by performing all operations in 64-bit IEEE floating-point format. -* +* "The result of a floating point arithmetic operation in overflow situations, when the `Machine_Overflows` attribute of the result type is `False`. See G.2.1(13)." @@ -1197,14 +1190,14 @@ must be used for achieving IEEE conforming behavior (although at the cost of a significant performance penalty), so infinite and NaN values are properly generated. -* +* "The result interval for division (or exponentiation by a negative exponent), when the floating point hardware implements division as multiplication by a reciprocal. See G.2.1(16)." Not relevant, division is IEEE exact. -* +* "The definition of close result set, which determines the accuracy of certain fixed point multiplications and divisions. See G.2.3(5)." @@ -1214,7 +1207,7 @@ floating-point arithmetic. The input operands are converted to floating-point, the operation is done in floating-point, and the result is converted to the target type. -* +* "Conditions on a `universal_real` operand of a fixed point multiplication or division for which the result shall be in the perfect result set. See G.2.3(22)." @@ -1223,7 +1216,7 @@ The result is only defined to be in the perfect result set if the result can be computed by a single scaling operation involving a scale factor representable in 64-bits. -* +* "The result of a fixed point arithmetic operation in overflow situations, when the `Machine_Overflows` attribute of the result type is `False`. See G.2.3(27)." @@ -1231,14 +1224,14 @@ representable in 64-bits. Not relevant, `Machine_Overflows` is `True` for fixed-point types. -* +* "The result of an elementary function reference in overflow situations, when the `Machine_Overflows` attribute of the result type is `False`. See G.2.4(4)." IEEE infinite and Nan values are produced as appropriate. -* +* "The value of the angle threshold, within which certain elementary functions, complex arithmetic operations, and complex elementary functions yield results conforming to a maximum relative @@ -1246,13 +1239,13 @@ IEEE infinite and Nan values are produced as appropriate. Information on this subject is not yet available. -* +* "The accuracy of certain elementary functions for parameters beyond the angle threshold. See G.2.4(10)." Information on this subject is not yet available. -* +* "The result of a complex arithmetic operation or complex elementary function reference in overflow situations, when the `Machine_Overflows` attribute of the corresponding real type is @@ -1260,27 +1253,27 @@ Information on this subject is not yet available. IEEE infinite and Nan values are produced as appropriate. -* +* "The accuracy of certain complex arithmetic operations and certain complex elementary functions for parameters (or components thereof) beyond the angle threshold. See G.2.6(8)." Information on those subjects is not yet available. -* +* "Information regarding bounded errors and erroneous execution. See H.2(1)." Information on this subject is not yet available. -* +* "Implementation-defined aspects of pragma `Inspection_Point`. See H.3.2(8)." Pragma `Inspection_Point` ensures that the variable is live and can be examined by the debugger at the inspection point. -* +* "Implementation-defined aspects of pragma `Restrictions`. See H.4(25)." @@ -1288,7 +1281,7 @@ There are no implementation-defined aspects of pragma `Restrictions`. The use of pragma `Restrictions [No_Exceptions]` has no effect on the generated code. Checks must suppressed by use of pragma `Suppress`. -* +* "Any restrictions on pragma `Restrictions`. See H.4(27)." diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst index 058db243575..5f8491be745 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst @@ -803,24 +803,6 @@ compatibility with the standard `Assertion_Policy` pragma. The check policy setting `DISABLE` causes the second argument of a corresponding `Check` pragma to be completely ignored and not analyzed. -Pragma CIL_Constructor -====================== - -Syntax: - - -:: - - pragma CIL_Constructor ([Entity =>] function_LOCAL_NAME); - - -This pragma is used to assert that the specified Ada function should be -mapped to the .NET constructor for some Ada tagged record type. - -See section 4.1 of the -`GNAT User's Guide: Supplement for the .NET Platform.` -for related information. - Pragma Comment ============== @@ -2864,42 +2846,6 @@ invariant pragma for the same entity. For further details on the use of this pragma, see the Ada 2012 documentation of the Type_Invariant aspect. -Pragma Java_Constructor -======================= - -Syntax: - - -:: - - pragma Java_Constructor ([Entity =>] function_LOCAL_NAME); - - -This pragma is used to assert that the specified Ada function should be -mapped to the Java constructor for some Ada tagged record type. - -See section 7.3.2 of the -`GNAT User's Guide: Supplement for the JVM Platform.` -for related information. - -Pragma Java_Interface -===================== - -Syntax: - - -:: - - pragma Java_Interface ([Entity =>] abstract_tagged_type_LOCAL_NAME); - - -This pragma is used to assert that the specified Ada abstract tagged type -is to be mapped to a Java interface name. - -See sections 7.1 and 7.2 of the -`GNAT User's Guide: Supplement for the JVM Platform.` -for related information. - Pragma Keep_Names ================= @@ -5769,6 +5715,13 @@ names that are implementation defined (as permitted by the RM): `Duplicated_Tag_Check` Can be used to suppress the check that is generated for a duplicated tag value when a tagged type is declared. +* + `Container_Checks` Can be used to suppress all checks within Ada.Containers + and instances of its children, including Tampering_Check. + +* + `Tampering_Check` Can be used to suppress tampering check in the containers. + * `Predicate_Check` can be used to control whether predicate checks are active. It is applicable only to predicates for which the policy is @@ -6479,8 +6432,8 @@ configuration pragma will ensure this test is not suppressed: This pragma is standard in Ada 2005. It is available in all earlier versions of Ada as an implementation-defined pragma. -Note that in addition to the checks defined in the Ada RM, GNAT recogizes -a number of implementation-defined check names. See description of pragma +Note that in addition to the checks defined in the Ada RM, GNAT recogizes a +number of implementation-defined check names. See the description of pragma `Suppress` for full details. Pragma Use_VADS_Size diff --git a/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst b/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst index c5cabb98af4..1a88222c381 100644 --- a/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst +++ b/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst @@ -137,12 +137,19 @@ No_Anonymous_Allocators [RM H.4] This restriction ensures at compile time that there are no occurrences of an allocator of anonymous access type. +No_Asynchronous_Control +----------------------- +.. index:: No_Asynchronous_Control + +[RM J.13] This restriction ensures at compile time that there are no semantic +dependences on the predefined package Asynchronous_Task_Control. + No_Calendar ----------- .. index:: No_Calendar -[GNAT] This restriction ensures at compile time that there is no implicit or -explicit dependence on the package `Ada.Calendar`. +[GNAT] This restriction ensures at compile time that there are no semantic +dependences on package Calendar. No_Coextensions --------------- @@ -170,14 +177,14 @@ No_Delay .. index:: No_Delay [RM H.4] This restriction ensures at compile time that there are no -delay statements and no dependences on package Calendar. +delay statements and no semantic dependences on package Calendar. No_Dependence ------------- .. index:: No_Dependence -[RM 13.12.1] This restriction checks at compile time that there are no -dependence on a library unit. +[RM 13.12.1] This restriction ensures at compile time that there are no +dependences on a library unit. No_Direct_Boolean_Operators --------------------------- @@ -709,6 +716,20 @@ No_Unchecked_Access [RM H.4] This restriction ensures at compile time that there are no occurrences of the Unchecked_Access attribute. +No_Unchecked_Conversion +----------------------- +.. index:: No_Unchecked_Conversion + +[RM J.13] This restriction ensures at compile time that there are no semantic +dependences on the predefined generic function Unchecked_Conversion. + +No_Unchecked_Deallocation +------------------------- +.. index:: No_Unchecked_Deallocation + +[RM J.13] This restriction ensures at compile time that there are no semantic +dependences on the predefined generic procedure Unchecked_Deallocation. + No_Use_Of_Entity ---------------- .. index:: No_Use_Of_Entity diff --git a/gcc/ada/doc/gnat_rm/the_gnat_library.rst b/gcc/ada/doc/gnat_rm/the_gnat_library.rst index a5f0aa210e6..6220bc28003 100644 --- a/gcc/ada/doc/gnat_rm/the_gnat_library.rst +++ b/gcc/ada/doc/gnat_rm/the_gnat_library.rst @@ -641,6 +641,19 @@ Provides AWK-like parsing functions, with an easy interface for parsing one 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. +.. _`GNAT.Bind_Environment_(g-binenv.ads)`: + +`GNAT.Bind_Environment` (:file:`g-binenv.ads`) +============================================== + +.. index:: GNAT.Bind_Environment (g-binenv.ads) + +.. index:: Bind environment + +Provides access to key=value associations captured at bind time. +These associations can be specified using the `-V` binder command +line switch. + .. _`GNAT.Bounded_Buffers_(g-boubuf.ads)`: `GNAT.Bounded_Buffers` (:file:`g-boubuf.ads`) diff --git a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst index 4c6e137ddcd..de04d2c7ef6 100644 --- a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst +++ b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst @@ -4911,13 +4911,12 @@ following *gcc* switches refine this default behavior. the condition being checked is true, which can result in erroneous execution if that assumption is wrong. - The checks subject to suppression include all the checks defined by - the Ada standard, the additional implementation defined checks - `Alignment_Check`, - `Duplicated_Tag_Check`, `Predicate_Check`, and - `Validity_Check`, as well as any checks introduced using - `pragma Check_Name`. Note that `Atomic_Synchronization` - is not automatically suppressed by use of this option. + The checks subject to suppression include all the checks defined by the Ada + standard, the additional implementation defined checks `Alignment_Check`, + `Duplicated_Tag_Check`, `Predicate_Check`, Container_Checks, Tampering_Check, + and `Validity_Check`, as well as any checks introduced using `pragma + Check_Name`. Note that `Atomic_Synchronization` is not automatically + suppressed by use of this option. If the code depends on certain checks being active, you can use pragma `Unsuppress` either as a configuration pragma or as @@ -6326,6 +6325,14 @@ be presented in subsequent sections. :file:`stdout`. + .. index:: -V (gnatbind) + +:samp:`-V{key}={value}` + Store the given association of `key` to `value` in the bind environment. + Values stored this way can be retrieved at run time using + `GNAT.Bind_Environment`. + + .. index:: -w (gnatbind) :samp:`-w{x}` diff --git a/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst b/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst index 79569b0ff12..b2c0ec2b0ce 100644 --- a/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst +++ b/gcc/ada/doc/gnat_ugn/gnat_project_manager.rst @@ -175,7 +175,7 @@ the directory :file:`obj/`. proc.adb common/obj/ proc.ali, proc.o pack.ali, pack.o - + Our project is to be called *Build*. The name of the file is the name of the project (case-insensitive) with the @@ -187,10 +187,10 @@ file is enough for it. We will thus create a new file, that for now should contain the following code: .. code-block:: gpr - + project Build is end Build; - + .. _Source_Files_and_Directories: @@ -263,7 +263,7 @@ There are several ways of defining source directories: for Source_Dirs use ("./**"); for Ignore_Source_Sub_Dirs use (".svn"); - + When applied to the simple example, and because we generally prefer to have the project file at the toplevel directory rather than mixed with the sources, @@ -276,7 +276,7 @@ we will create the following file project Build is for Source_Dirs use ("common"); -- <<<< end Build; - + Once source directories have been specified, one may need to indicate source files of interest. By default, all source files present in the source @@ -426,7 +426,7 @@ For our example, we can specify the object dir in this way: for Source_Dirs use ("common"); for Object_Dir use "obj"; -- <<<< end Build; - + As mentioned earlier, there is a single object directory per project. As a result, if you have an existing system where the object files are spread across several directories, you can either move all of them into the same directory if @@ -459,7 +459,7 @@ the project file is now for Object_Dir use "obj"; for Exec_Dir use "."; -- <<<< end Build; - + .. _Main_Subprograms: @@ -497,7 +497,7 @@ corresponding executables. for Exec_Dir use "."; for Main use ("proc.adb"); -- <<<< end Build; - + If this attribute is defined in the project, then spawning the builder with a command such as @@ -505,7 +505,7 @@ with a command such as .. code-block:: sh gprbuild -Pbuild - + automatically builds all the executables corresponding to the files listed in the *Main* attribute. It is possible to specify one @@ -564,7 +564,7 @@ packages would be involved in the build process. for Object_Dir use "obj"; for Exec_Dir use "."; for Main use ("proc.adb"); - + package Builder is --<<< for gprbuild end Builder; @@ -630,7 +630,7 @@ Several attributes can be used to specify the switches: for Switches ("proc.adb") use ("-O0"); end Compiler; - + `Switches` may take a pattern as an index, such as in: @@ -642,7 +642,7 @@ Several attributes can be used to specify the switches: for Switches ("pkg*") use ("-O0"); end Compiler; - + Sources :file:`pkg.adb` and :file:`pkg-child.adb` would be compiled with -O0, not -O2. @@ -679,7 +679,7 @@ Here is the command we would use from the command line: .. code-block:: sh gprbuild -Pbuild - + This will automatically build the executables specified through the *Main* attribute: for each, it will compile or recompile the sources for which the object file does not exist or is not up-to-date; it @@ -693,7 +693,7 @@ set the attribute *Languages* to `"(Ada, C)"`, and re-run .. code-block:: sh gprbuild -Pbuild - + Gprbuild knows how to recompile the C files and will recompile them only if one of their dependencies has changed. No direct indication on how to build the various elements is given in the @@ -752,7 +752,7 @@ on Windows), we could configure our project file to build "proc1" for Executable ("proc.adb") use "proc1"; end Builder end Build; - + .. index:: Executable_Suffix (GNAT Project Manager) Attribute **Executable_Suffix**, when specified, may change the suffix @@ -790,7 +790,7 @@ project using similar sources and a main program in C: for Switches ("main.c") use C_Switches & ("-g"); end Compiler; end C_Main; - + This project has many similarities with the previous one. As expected, its `Main` attribute now refers to a C source. The attribute *Exec_Dir* is now omitted, thus the resulting @@ -810,7 +810,7 @@ replaced by a reference to the `Default_Switches` attribute: .. code-block:: gpr for Switches ("c_main.c") use Compiler'Default_Switches ("C") & ("-g"); - + Note the tick (*'*) used to refer to attributes defined in a package. Here is the output of the GPRbuild command using this project: @@ -825,7 +825,7 @@ Here is the output of the GPRbuild command using this project: gprbind main.bexch ... gcc main.o -o main - + The default switches for Ada sources, the default switches for C sources (in the compilation of :file:`lib.c`), and the specific switches for :file:`main.c` have all been taken into @@ -986,7 +986,7 @@ The following attributes can be defined in package `Naming`: for Spec ("MyPack.MyChild") use "mypack.mychild.spec"; for Spec ("top") use "foo.a" at 1; for Spec ("foo") use "foo.a" at 2; - + .. index:: Body (GNAT Project Manager) @@ -1018,7 +1018,7 @@ For example, the following package models the Apex file naming rules: for Spec_Suffix ("Ada") use ".1.ada"; for Body_Suffix ("Ada") use ".2.ada"; end Naming; - + .. _Installation: @@ -1048,7 +1048,9 @@ The following attributes can be defined in package `Install`: An array attribute to declare a set of files not part of the sources to be installed. The array discriminant is the directory where the file is to be installed. If a relative directory then Prefix (see - below) is prepended. + below) is prepended. Note also that if the same file name occurs + multiple time in the attribute list, the last one will be the one + installed. .. index:: Prefix (GNAT Project Manager) @@ -1155,7 +1157,7 @@ project: project Build is ... -- as before end Build; - + .. index:: Externally_Built (GNAT Project Manager) @@ -1296,7 +1298,7 @@ its variables cannot be referred to. project D is for Exec_Dir use A'Exec_Dir; -- not ok end D; - + .. _Sharing_Between_Projects: @@ -1341,7 +1343,7 @@ There are two main approaches to avoiding this duplication: for Switches ("Ada") use Logging.Binder'Switches ("Ada"); end Binder; end Build; - + The solution used for `Compiler` gets the same value for all attributes of the package, but you cannot modify anything from the package (adding extra switches or some exceptions). The second @@ -1383,7 +1385,7 @@ There are two main approaches to avoiding this duplication: project Build is package Compiler renames Shared.Compiler; end Build; - + As for the first example, we could have chosen to set the attributes one by one rather than to rename a package. The reason we explicitly indicate that `Shared` has no sources is so that it can be created @@ -1482,7 +1484,7 @@ order of priority): .. code-block:: sh gprbuild -Pbuild.gpr -Xmode=release - + **Environment variables**: When the external value does not come from the command line, it can come from @@ -1507,7 +1509,7 @@ either :file:`obj/debug` or :file:`obj/release` by changing our project to for Object_Dir use "obj/" & external ("mode", "debug"); ... -- as before end Build; - + The second parameter to `external` is optional, and is the default value to use if "mode" is not set from the command line or the environment. @@ -1539,7 +1541,7 @@ sections in the project. The following example shows how this can be done: end case; end Compiler; end Build; - + The project has suddenly grown in size, but has become much more flexible. `Mode_Type` defines the only valid values for the `mode` variable. If any other value is read from the environment, an error is reported and the @@ -1636,7 +1638,7 @@ Here is the new version of :file:`logging.gpr` that makes it a library: for Object_Dir use "obj"; for Library_Dir use "lib"; -- different from object_dir end Logging; - + Once the above two attributes are defined, the library project is valid and is enough for building a library with default characteristics. Other library-related attributes can be used to change the defaults: @@ -1696,7 +1698,7 @@ Other library-related attributes can be used to change the defaults: for Library_Kind use "dynamic"; for Library_Version use "liblogging.so." & Version; end Logging; - + After the compilation, the directory :file:`lib` will contain both a :file:`libdummy.so.1` library and a symbolic link to it called @@ -1781,7 +1783,7 @@ the following two commands need to be used: gprbuild -Plogging.gpr gprbuild -Pbuild.gpr - + All :file:`ALI` files will also be copied from the object directory to the library directory. To build executables, *gprbuild* will use the library rather than the individual object files. @@ -1801,7 +1803,7 @@ of the library sources are not available. Such library projects need to use the for Library_Name use "l2"; for Externally_Built use "true"; -- <<<< end Extern_Lib; - + In the case of externally built libraries, the `Object_Dir` attribute does not need to be specified because it will never be used. @@ -2089,7 +2091,7 @@ the project `Build` from previous examples: project Work extends "../bld/build.gpr" is end Work; - + The project after **extends** is the one being extended. As usual, it can be specified using an absolute path, or a path relative to any of the directories in the project path (see :ref:`Project_Dependencies`). This project does not @@ -2100,7 +2102,7 @@ attributes will be used that is to say the current directory (where project .. code-block:: sh gprbuild -Pwork - + If no sources have been placed in the current directory, this command won't do anything, since this project does not change the sources it inherited from `Build`, therefore all the object files @@ -2154,7 +2156,7 @@ line. -- New spec of Pkg does not need a completion for Excluded_Source_Files use ("pack.adb"); end Work; - + All packages that are not declared in the extending project are inherited from the project being extended, with their attributes, with the exception of @@ -2182,7 +2184,7 @@ For example, consider the following hierarchy of projects. a.gpr contains package A1 b.gpr, imports a.gpr and contains B1, which depends on A1 c.gpr, imports b.gpr and contains C1, which depends on B1 - + If we want to locally extend the packages `A1` and `C1`, we need to create several extending projects: @@ -2191,7 +2193,7 @@ create several extending projects: a_ext.gpr which extends a.gpr, and overrides A1 b_ext.gpr which extends b.gpr and imports a_ext.gpr c_ext.gpr which extends c.gpr, imports b_ext.gpr and overrides C1 - + .. code-block:: gpr project A_Ext extends "a.gpr" is @@ -2252,7 +2254,7 @@ Thus, in our example we could create the following projects instead: project C_Ext extends all "c.gpr" is for Source_Files use ("c1.adb"); end C_Ext; - + When building project :file:`c_ext.gpr`, the entire modified project space is considered for recompilation, including the sources of :file:`b.gpr` that are @@ -2289,7 +2291,7 @@ However, if you build your project through *gprbuild*, using a syntax similar to :: gprbuild -PA.gpr - + this will only rebuild the main programs of project A, not those of the imported projects B and C. Therefore you have to spawn several *gprbuild* commands, one per project, to build all executables. @@ -2341,7 +2343,7 @@ Using only *gprbuild*, you could do gprbuild -PA.gpr gprbuild -PB.gpr - + to build both. But again, *gprbuild* has to do some duplicate work for those files that are shared between the two, and cannot truly build things in parallel efficiently. @@ -2401,7 +2403,7 @@ reference external variables in |with| declarations, as in project MyProject is ... end MyProject; - + For various reasons, this is not allowed. But using aggregate projects provide an elegant solution. For instance, you could use a project file like: @@ -2416,7 +2418,7 @@ an elegant solution. For instance, you could use a project file like: project MyProject is ... end MyProject; - + .. _Performance_improvements_in_builder: @@ -2527,7 +2529,7 @@ The following three attributes can be used only in an aggregate project: for Project_Files use ("/.gpr"); -- all projects recursively - + .. index:: Project_Path (GNAT Project Manager) @@ -2601,7 +2603,7 @@ The following three attributes can be used only in an aggregate project: .. code-block:: gpr for Project_Path use ("/usr/local/gpr", "gpr/"); - + .. index:: External (GNAT Project Manager) **External**: @@ -2665,7 +2667,7 @@ are valid: .. code-block:: gpr for Switches (others) use ("-v", "-k", "-j8"); - + These switches are only read from the main aggregate project (the one passed on the command line), and ignored in all other aggregate projects or projects. @@ -2740,7 +2742,7 @@ are valid: use ("-O0", "-g"); end Compiler; end C; - + then the following switches are used: @@ -2816,13 +2818,13 @@ and C: for Library_Name use ("agg"); for Library_Dir use ("lagg"); end Agg; - + Then, when you build with: .. code-block:: sh gprbuild agg.gpr - + This will build all units from projects A, B and C and will create a static library named :file:`libagg.a` in the :file:`lagg` directory. An aggregate library project has the same set of @@ -2929,7 +2931,7 @@ are always case-insensitive ("Name" is the same as "name"). simple_name ::= identifier name ::= simple_name { . simple_name } - + **Strings** are used for values of attributes or as indexes for these attributes. They are in general case sensitive, except when noted otherwise (in particular, strings representing file names will be case @@ -2939,7 +2941,7 @@ represent the same file). **Reserved words** are the same as for standard Ada 95, and cannot be used for identifiers. In particular, the following words are currently used in project files, but others could be added later on. In bold are the -extra reserved words in project files: +extra reserved words in project files: ``all``, ``at``, ``case``, ``end``, ``for``, ``is``, ``limited``, ``null``, ``others``, ``package``, ``renames``, ``type``, ``use``, ``when``, ``with``, **extends**, **external**, **project**. @@ -2980,7 +2982,7 @@ in the cycle is a **limited with**. with "other_project.gpr"; project My_Project extends "extended.gpr" is end My_Project; - + These dependencies form a **directed graph**, potentially cyclic when using **limited with**. The subgraph reflecting the **extends** relations is a tree. @@ -3010,7 +3012,7 @@ in the child project. project name is {declarative_item} end simple_name; - + .. _Qualified_Projects: @@ -3021,7 +3023,7 @@ Before the reserved `project`, there may be one or two **qualifiers**, that is identifiers or reserved words, to qualify the project. The current list of qualifiers is: -**abstract**: +**abstract**: Qualifies a project with no sources. Such a project must either have no declaration of attributes `Source_Dirs`, `Source_Files`, `Languages` or `Source_List_File`, or one of @@ -3029,11 +3031,11 @@ The current list of qualifiers is: as empty. If it extends another project, the project it extends must also be a qualified abstract project. -**standard**: +**standard**: A standard project is a non library project with sources. This is the default (implicit) qualifier. -**aggregate**: +**aggregate**: A project whose sources are aggregated from other project files. **aggregate library**: @@ -3071,7 +3073,7 @@ declaration. Others can appear within a project or within a package. | empty_declaration empty_declaration ::= *null* ; - + An empty declaration is allowed anywhere a declaration is allowed. It has no effect. @@ -3177,9 +3179,9 @@ The following packages are currently supported in project files used to automatically find all source files in the source directories, or given a file name to find out its language for proper processing. See :ref:`Naming_Schemes`. - + .. only: PRO or GPL - + *Pretty_Printer* This package specifies the options used when calling the formatting tool *gnatpp* via the *gnat* driver. Its attributes @@ -3208,7 +3210,7 @@ In its simplest form, a package may be empty: package Builder is end Builder; end Simple; - + A package may contain **attribute declarations**, **variable declarations** and **case constructions**, as will be described below. @@ -3306,7 +3308,7 @@ following Ada declarations show the existing operators: function "&" (X : String; Y : String) return String; function "&" (X : String_List; Y : String) return String_List; function "&" (X : String_List; Y : String_List) return String_List; - + Here are some specific examples: @@ -3316,7 +3318,7 @@ Here are some specific examples: List2 := List & (File_Name & ".orig"); -- Two strings Big_List := List & Lists2; -- Three strings Illegal := "gnat.adc" & List2; -- Illegal, must start with list - + .. _External_Values: @@ -3333,7 +3335,7 @@ one that returns a string list. The syntax of a single string external value is:: external_value ::= *external* ( string_literal [, string_literal] ) - + The first string_literal is the string to be used on the command line or in the environment to specify the external value. The second string_literal, @@ -3363,7 +3365,7 @@ attributes in various scenarios. Thus such variables are often called The syntax for a string list external value is:: external_value ::= *external_as_list* ( string_literal , string_literal ) - + The first string_literal is the string to be used on the command line or in the environment to specify the external value. The second string_literal is @@ -3382,7 +3384,7 @@ last separator and the end are components of the string list. :: *external_as_list* ("SWITCHES", ",") - + If the external value is "-O2,-g", the result is ("-O2", "-g"). @@ -3412,7 +3414,7 @@ level, not inside a package. typed_string_declaration ::= *type* **_simple_name *is* ( string_literal {, string_literal} ); - + The string literals in the list are case sensitive and must all be different. They may include any graphic characters allowed in Ada, including spaces. Here is an example of a string type declaration: @@ -3420,7 +3422,7 @@ Here is an example of a string type declaration: .. code-block:: ada type OS is ("NT", "nt", "Unix", "GNU/Linux", "other OS"); - + Variables of a string type are called **typed variables**; all other variables are called **untyped variables**. Typed variables are particularly useful in `case` constructions, to support conditional @@ -3465,9 +3467,9 @@ A variable may be declared at the project file level, or within a package. typed_variable_declaration ::= **simple_name : **name := string_expression; - + variable_declaration ::= **simple_name := expression; - + Here are some examples of variable declarations: .. code-block:: gpr @@ -3482,7 +3484,7 @@ Here are some examples of variable declarations: List_With_One_Element := ("-gnaty"); List_With_Two_Elements := List_With_One_Element & "-gnatg"; Long_List := ("main.ada", "pack1_.ada", "pack1.ada", "pack2_.ada"); - + A **variable reference** may take several forms: * The simple variable name, for a variable in the current package (if any) @@ -3543,7 +3545,7 @@ variables that have already been declared before the case construction. | empty_declaration} discrete_choice_list ::= string_literal {| string_literal} | *others* - + Here is a typical example, with a typed string variable: .. code-block:: gpr @@ -3565,7 +3567,7 @@ Here is a typical example, with a typed string variable: end case; end Compiler; end MyProj; - + .. _Attributes: @@ -3589,7 +3591,7 @@ others have values that are string lists. attribute_designator ::= **simple_name | **simple_name ( string_literal ) - + There are two categories of attributes: **simple attributes** and **indexed attributes**. Each simple attribute has a default value: the empty string (for string @@ -3624,7 +3626,7 @@ Here are some examples of attribute declarations: -- The package name must always be specified, even if it is the current -- package. for Default_Switches use Default.Builder'Default_Switches; - + Attributes references may appear anywhere in expressions, and are used to retrieve the value previously assigned to the attribute. If an attribute has not been set in a given package or project, its value defaults to the @@ -3638,7 +3640,7 @@ empty string or the empty list, with some exceptions. | **simple_name | package_identifier | **simple_name . package_identifier - + Examples are:: 'Object_Dir @@ -3646,7 +3648,7 @@ Examples are:: Imported_Project'Source_Dirs Imported_Project.Naming'Casing Builder'Default_Switches ("Ada") - + The exceptions to the empty defaults are: * Object_Dir: default is "." @@ -4596,7 +4598,9 @@ Package Install Attributes An array attribute to declare a set of files not part of the sources to be installed. The array discriminant is the directory where the file is to be installed. If a relative directory then Prefix (see - below) is prepended. + below) is prepended. Note also that if the same file name occurs + multiple time in the attribute list, the last one will be the one + installed. * **Prefix**: single @@ -4873,5 +4877,3 @@ Package Synchronize Attributes Index is a source file name. Value is the list of switches to be used when invoking `gnatsync` for the source. - - diff --git a/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst b/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst index 30eb860789e..80634d0eec7 100644 --- a/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst +++ b/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst @@ -4465,7 +4465,7 @@ If you want to generate a single Ada file and not the transitive closure, you can use instead the *-fdump-ada-spec-slim* switch. You can optionally specify a parent unit, of which all generated units will -be children, using `-fada-spec-parent=``unit`. +be children, using `-fada-spec-parent=`. Note that we recommend when possible to use the *g++* driver to generate bindings, even for most C headers, since this will in general diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 281cb382bd7..5e3c590b47a 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -21,7 +21,7 @@ @copying @quotation -GNAT Reference Manual , May 12, 2015 +GNAT Reference Manual , October 20, 2015 AdaCore @@ -118,7 +118,6 @@ Implementation Defined Pragmas * Pragma Check_Float_Overflow:: * Pragma Check_Name:: * Pragma Check_Policy:: -* Pragma CIL_Constructor:: * Pragma Comment:: * Pragma Common_Object:: * Pragma Compile_Time_Error:: @@ -183,8 +182,6 @@ Implementation Defined Pragmas * Pragma Interrupt_Handler:: * Pragma Interrupt_State:: * Pragma Invariant:: -* Pragma Java_Constructor:: -* Pragma Java_Interface:: * Pragma Keep_Names:: * Pragma License:: * Pragma Link_With:: @@ -439,6 +436,7 @@ Partition-Wide Restrictions * No_Access_Subprograms:: * No_Allocators:: * No_Anonymous_Allocators:: +* No_Asynchronous_Control:: * No_Calendar:: * No_Coextensions:: * No_Default_Initialization:: @@ -491,6 +489,8 @@ Partition-Wide Restrictions * No_Tasking:: * No_Terminate_Alternatives:: * No_Unchecked_Access:: +* No_Unchecked_Conversion:: +* No_Unchecked_Deallocation:: * No_Use_Of_Entity:: * Simple_Barriers:: * Static_Priorities:: @@ -693,6 +693,7 @@ The GNAT Library * GNAT.Altivec.Vector_Views (g-alvevi.ads): GNAT Altivec Vector_Views g-alvevi ads. * GNAT.Array_Split (g-arrspl.ads): GNAT Array_Split g-arrspl ads. * GNAT.AWK (g-awk.ads): GNAT AWK g-awk ads. +* GNAT.Bind_Environment (g-binenv.ads): GNAT Bind_Environment g-binenv ads. * GNAT.Bounded_Buffers (g-boubuf.ads): GNAT Bounded_Buffers g-boubuf ads. * GNAT.Bounded_Mailboxes (g-boumai.ads): GNAT Bounded_Mailboxes g-boumai ads. * GNAT.Bubble_Sort (g-bubsor.ads): GNAT Bubble_Sort g-bubsor ads. @@ -1152,7 +1153,6 @@ consideration, the use of these pragmas should be minimized. * Pragma Check_Float_Overflow:: * Pragma Check_Name:: * Pragma Check_Policy:: -* Pragma CIL_Constructor:: * Pragma Comment:: * Pragma Common_Object:: * Pragma Compile_Time_Error:: @@ -1217,8 +1217,6 @@ consideration, the use of these pragmas should be minimized. * Pragma Interrupt_Handler:: * Pragma Interrupt_State:: * Pragma Invariant:: -* Pragma Java_Constructor:: -* Pragma Java_Interface:: * Pragma Keep_Names:: * Pragma License:: * Pragma Link_With:: @@ -2060,7 +2058,7 @@ are mentioned in @cite{with} clauses). Check names introduced by this pragma are subject to control by compiler switches (in particular -gnatp) in the usual manner. -@node Pragma Check_Policy,Pragma CIL_Constructor,Pragma Check_Name,Implementation Defined Pragmas +@node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{31} @section Pragma Check_Policy @@ -2140,26 +2138,8 @@ compatibility with the standard @cite{Assertion_Policy} pragma. The check policy setting @cite{DISABLE} causes the second argument of a corresponding @cite{Check} pragma to be completely ignored and not analyzed. -@node Pragma CIL_Constructor,Pragma Comment,Pragma Check_Policy,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-cil-constructor}@anchor{32} -@section Pragma CIL_Constructor - - -Syntax: - -@example -pragma CIL_Constructor ([Entity =>] function_LOCAL_NAME); -@end example - -This pragma is used to assert that the specified Ada function should be -mapped to the .NET constructor for some Ada tagged record type. - -See section 4.1 of the -@cite{GNAT User's Guide: Supplement for the .NET Platform.} -for related information. - -@node Pragma Comment,Pragma Common_Object,Pragma CIL_Constructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{33} +@node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas +@anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{32} @section Pragma Comment @@ -2178,7 +2158,7 @@ anywhere in the main source unit), and if more than one pragma is used, all comments are retained. @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{34} +@anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{33} @section Pragma Common_Object @@ -2210,7 +2190,7 @@ indicating that the necessary attribute for implementation of this pragma is not available. @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{35} +@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{34} @section Pragma Compile_Time_Error @@ -2237,7 +2217,7 @@ the value given as the second argument. This string value may contain embedded ASCII.LF characters to break the message into multiple lines. @node Pragma Compile_Time_Warning,Pragma Compiler_Unit,Pragma Compile_Time_Error,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{36} +@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{35} @section Pragma Compile_Time_Warning @@ -2260,7 +2240,7 @@ with a first parameter of True is to warn a client about use of a package, for example that it is not fully implemented. @node Pragma Compiler_Unit,Pragma Compiler_Unit_Warning,Pragma Compile_Time_Warning,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-compiler-unit}@anchor{37} +@anchor{gnat_rm/implementation_defined_pragmas pragma-compiler-unit}@anchor{36} @section Pragma Compiler_Unit @@ -2275,7 +2255,7 @@ retained so that old versions of the GNAT run-time that use this pragma can be compiled with newer versions of the compiler. @node Pragma Compiler_Unit_Warning,Pragma Complete_Representation,Pragma Compiler_Unit,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-compiler-unit-warning}@anchor{38} +@anchor{gnat_rm/implementation_defined_pragmas pragma-compiler-unit-warning}@anchor{37} @section Pragma Compiler_Unit_Warning @@ -2293,7 +2273,7 @@ version of GNAT. For the exact list of restrictions, see the compiler sources and references to Check_Compiler_Unit. @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compiler_Unit_Warning,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{39} +@anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{38} @section Pragma Complete_Representation @@ -2312,7 +2292,7 @@ complete, and that this invariant is maintained if fields are added to the record in the future. @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{3a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{39} @section Pragma Complex_Representation @@ -2334,7 +2314,7 @@ records by pointer, and the use of this pragma may result in passing this type in floating-point registers. @node Pragma Component_Alignment,Pragma Contract_Cases,Pragma Complex_Representation,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{3b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{3a} @section Pragma Component_Alignment @@ -2425,7 +2405,7 @@ pragma @cite{Pack}, pragma @cite{Component_Alignment}, or a record rep clause), the GNAT uses the default alignment as described previously. @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Component_Alignment,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{3c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{3b} @section Pragma Contract_Cases @@ -2506,7 +2486,7 @@ and that the consequence for this case should hold when the subprogram returns. @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{3d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{3c} @section Pragma Convention_Identifier @@ -2542,7 +2522,7 @@ define a convention identifier @cite{Library} and use a single would be used system-wide. @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{3e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{3d} @section Pragma CPP_Class @@ -2567,14 +2547,14 @@ functions (see pragma @cite{CPP_Constructor}). Such types are implicitly limited if not explicitly declared as limited or derived from a limited type, and an error is issued in that case. -See @ref{3f,,Interfacing to C++} for related information. +See @ref{3e,,Interfacing to C++} for related information. Note: Pragma @cite{CPP_Class} is currently obsolete. It is supported for backward compatibility but its functionality is available using pragma @cite{Import} with @cite{Convention} = @cite{CPP}. @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{40} +@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{3f} @section Pragma CPP_Constructor @@ -2625,7 +2605,7 @@ on the Ada side and the type is implicitly declared abstract. Pragma @cite{CPP_Constructor} is intended primarily for automatic generation using an automatic binding generator tool (such as the @cite{-fdump-ada-spec} GCC switch). -See @ref{3f,,Interfacing to C++} for more related information. +See @ref{3e,,Interfacing to C++} for more related information. Note: The use of functions returning class-wide types for constructors is currently obsolete. They are supported for backward compatibility. The @@ -2634,7 +2614,7 @@ because the imported C++ constructors always return an object of type T; that is, they never return an object whose type is a descendant of type T. @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{41} +@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{40} @section Pragma CPP_Virtual @@ -2647,10 +2627,10 @@ purposes. It used to be required to ensure compoatibility with C++, but is no longer required for that purpose because GNAT generates the same object layout as the G++ compiler by default. -See @ref{3f,,Interfacing to C++} for related information. +See @ref{3e,,Interfacing to C++} for related information. @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{42} +@anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{41} @section Pragma CPP_Vtable @@ -2662,10 +2642,10 @@ It used to be required to ensure compatibility with C++, but is no longer required for that purpose because GNAT generates the same object layout as the G++ compiler by default. -See @ref{3f,,Interfacing to C++} for related information. +See @ref{3e,,Interfacing to C++} for related information. @node Pragma CPU,Pragma Debug,Pragma CPP_Vtable,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{43} +@anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{42} @section Pragma CPU @@ -2680,7 +2660,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Debug,Pragma Debug_Policy,Pragma CPU,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{44} +@anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{43} @section Pragma Debug @@ -2708,7 +2688,7 @@ or by use of the pragma @cite{Check_Policy} with a first argument of @cite{Debug}. @node Pragma Debug_Policy,Pragma Default_Scalar_Storage_Order,Pragma Debug,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{45} +@anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{44} @section Pragma Debug_Policy @@ -2723,7 +2703,7 @@ with a first argument of @cite{Debug}. It is retained for historical compatibility reasons. @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Debug_Policy,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{46} +@anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{45} @section Pragma Default_Scalar_Storage_Order @@ -2796,7 +2776,7 @@ it may significantly degrade the run-time performance of the software, instead the default scalar storage order ought to be changed only on a local basis. @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{47} +@anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{46} @section Pragma Default_Storage_Pool @@ -2813,7 +2793,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{48} +@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{47} @section Pragma Depends @@ -2821,7 +2801,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.5. @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{49} +@anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{48} @section Pragma Detect_Blocking @@ -2839,7 +2819,7 @@ blocking operations within a protected operation, and to raise Program_Error if that happens. @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{4a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{49} @section Pragma Disable_Atomic_Synchronization @@ -2865,7 +2845,7 @@ till the end of the scope. If an @cite{Entity} argument is present, the action applies only to that entity. @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{4b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{4a} @section Pragma Dispatching_Domain @@ -2880,7 +2860,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{4c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{4b} @section Pragma Effective_Reads @@ -2888,7 +2868,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.1.2. @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{4d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{4c} @section Pragma Effective_Writes @@ -2896,7 +2876,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.1.2. @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{4e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{4d} @section Pragma Elaboration_Checks @@ -2921,7 +2901,7 @@ used by the GNAT compiler, see the chapter on elaboration order handling in the @emph{GNAT User's Guide}. @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{4f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{4e} @section Pragma Eliminate @@ -2999,7 +2979,7 @@ dispatch are considered to be unused (are never called as a result of a direct or a dispatching call). @node Pragma Enable_Atomic_Synchronization,Pragma Export_Function,Pragma Eliminate,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{50} +@anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{4f} @section Pragma Enable_Atomic_Synchronization @@ -3027,7 +3007,7 @@ till the end of the scope. If an @cite{Entity} argument is present, the action applies only to that entity. @node Pragma Export_Function,Pragma Export_Object,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{51} +@anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{50} @section Pragma Export_Function @@ -3096,7 +3076,7 @@ string. In this case, no external name is generated. This form still allows the specification of parameter mechanisms. @node Pragma Export_Object,Pragma Export_Procedure,Pragma Export_Function,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{52} +@anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{51} @section Pragma Export_Object @@ -3121,7 +3101,7 @@ of portability), but it is not required. @cite{Size} is syntax checked, but otherwise ignored by GNAT. @node Pragma Export_Procedure,Pragma Export_Value,Pragma Export_Object,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{53} +@anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{52} @section Pragma Export_Procedure @@ -3174,7 +3154,7 @@ string. In this case, no external name is generated. This form still allows the specification of parameter mechanisms. @node Pragma Export_Value,Pragma Export_Valued_Procedure,Pragma Export_Procedure,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-export-value}@anchor{54} +@anchor{gnat_rm/implementation_defined_pragmas pragma-export-value}@anchor{53} @section Pragma Export_Value @@ -3195,7 +3175,7 @@ the application. This pragma is currently supported only for the AAMP target and is ignored for other targets. @node Pragma Export_Valued_Procedure,Pragma Extend_System,Pragma Export_Value,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{55} +@anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{54} @section Pragma Export_Valued_Procedure @@ -3253,7 +3233,7 @@ string. In this case, no external name is generated. This form still allows the specification of parameter mechanisms. @node Pragma Extend_System,Pragma Extensions_Allowed,Pragma Export_Valued_Procedure,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{56} +@anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{55} @section Pragma Extend_System @@ -3304,7 +3284,7 @@ for compiling System units, as explained in the GNAT User's Guide. @node Pragma Extensions_Allowed,Pragma External,Pragma Extend_System,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{57} +@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{56} @section Pragma Extensions_Allowed @@ -3337,7 +3317,7 @@ is constrained. @end table @node Pragma External,Pragma External_Name_Casing,Pragma Extensions_Allowed,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{58} +@anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{57} @section Pragma External @@ -3358,7 +3338,7 @@ used this pragma for exactly the same purposes as pragma @cite{Export} before the latter was standardized. @node Pragma External_Name_Casing,Pragma Fast_Math,Pragma External,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{59} +@anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{58} @section Pragma External_Name_Casing @@ -3447,7 +3427,7 @@ pragma External_Name_Casing (Uppercase, Uppercase); to enforce the upper casing of all external symbols. @node Pragma Fast_Math,Pragma Favor_Top_Level,Pragma External_Name_Casing,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{5a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{59} @section Pragma Fast_Math @@ -3476,7 +3456,7 @@ under control of the pragma, rather than use the preinstantiated versions. @end table @node Pragma Favor_Top_Level,Pragma Finalize_Storage_Only,Pragma Fast_Math,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{5b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{5a} @section Pragma Favor_Top_Level @@ -3496,7 +3476,7 @@ trampolines may be used on some targets for nested subprograms. See also the No_Implicit_Dynamic_Code restriction. @node Pragma Finalize_Storage_Only,Pragma Float_Representation,Pragma Favor_Top_Level,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{5c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{5b} @section Pragma Finalize_Storage_Only @@ -3513,7 +3493,7 @@ environments it is not necessary to reclaim memory just before terminating execution, hence the name. @node Pragma Float_Representation,Pragma Global,Pragma Finalize_Storage_Only,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{5d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{5c} @section Pragma Float_Representation @@ -3548,7 +3528,7 @@ No other value of digits is permitted. @end itemize @node Pragma Global,Pragma Ident,Pragma Float_Representation,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{5e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{5d} @section Pragma Global @@ -3556,7 +3536,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.4. @node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{5f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{5e} @section Pragma Ident @@ -3570,7 +3550,7 @@ This pragma is identical in effect to pragma @cite{Comment}. It is provided for compatibility with other Ada compilers providing this pragma. @node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{60} +@anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{5f} @section Pragma Ignore_Pragma @@ -3590,7 +3570,7 @@ pragma allows such pragmas to be ignored, which may be useful in @cite{CodePeer} mode, or during porting of legacy code. @node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{61} +@anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{60} @section Pragma Implementation_Defined @@ -3617,7 +3597,7 @@ for the purpose of implementing the No_Implementation_Identifiers restriction. @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{62} +@anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{61} @section Pragma Implemented @@ -3663,7 +3643,7 @@ By_Any shares the behavior of By_Entry and By_Protected_Procedure depending on the target's overriding subprogram kind. @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{63} +@anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{62} @section Pragma Implicit_Packing @@ -3717,7 +3697,7 @@ sufficient. The use of pragma Implicit_Packing allows this record declaration to compile without an explicit pragma Pack. @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{64} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{63} @section Pragma Import_Function @@ -3782,7 +3762,7 @@ notation. If the mechanism is not specified, the default mechanism is used. @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{65} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{64} @section Pragma Import_Object @@ -3808,7 +3788,7 @@ point of view). @cite{size} is syntax checked, but otherwise ignored by GNAT. @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{66} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{65} @section Pragma Import_Procedure @@ -3848,7 +3828,7 @@ applies to a procedure rather than a function and the parameters @cite{Result_Type} and @cite{Result_Mechanism} are not permitted. @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{67} +@anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{66} @section Pragma Import_Valued_Procedure @@ -3901,7 +3881,7 @@ pragma Import that specifies the desired convention, since otherwise the default convention is Ada, which is almost certainly not what is required. @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{68} +@anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{67} @section Pragma Independent @@ -3923,7 +3903,7 @@ constraints on the representation of the object (for instance prohibiting tight packing). @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{69} +@anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{68} @section Pragma Independent_Components @@ -3944,7 +3924,7 @@ constraints on the representation of the object (for instance prohibiting tight packing). @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{6a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{69} @section Pragma Initial_Condition @@ -3952,7 +3932,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.1.6. @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{6b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{6a} @section Pragma Initialize_Scalars @@ -4015,7 +3995,7 @@ checking (see description of stack checking in the GNAT User's Guide) when using this pragma. @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{6c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{6b} @section Pragma Initializes @@ -4023,7 +4003,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.1.5. @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{6d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{6c} @section Pragma Inline_Always @@ -4038,7 +4018,7 @@ the use of option @emph{-gnatn} or @emph{-gnatN} and the inlining happens regardless of whether these options are used. @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{6e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{6d} @section Pragma Inline_Generic @@ -4056,7 +4036,7 @@ than to check that the given names are all names of generic units or generic instances. @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{6f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{6e} @section Pragma Interface @@ -4083,7 +4063,7 @@ maintaining Ada 83/Ada 95 compatibility and is compatible with other Ada 83 compilers. @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{70} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{6f} @section Pragma Interface_Name @@ -4102,7 +4082,7 @@ for an interfaced subprogram, and is provided for compatibility with Ada least one of @cite{External_Name} or @cite{Link_Name}. @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{71} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{70} @section Pragma Interrupt_Handler @@ -4122,7 +4102,7 @@ when this pragma is applied to a nonprotected procedure, the instruction maskable interrupts, in place of the normal return instruction. @node Pragma Interrupt_State,Pragma Invariant,Pragma Interrupt_Handler,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{72} +@anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{71} @section Pragma Interrupt_State @@ -4204,8 +4184,8 @@ Overriding the default state of signals used by the Ada runtime may interfere with an application's runtime behavior in the cases of the synchronous signals, and in the case of the signal used to implement the @cite{abort} statement. -@node Pragma Invariant,Pragma Java_Constructor,Pragma Interrupt_State,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{73} +@node Pragma Invariant,Pragma Keep_Names,Pragma Interrupt_State,Implementation Defined Pragmas +@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{72} @section Pragma Invariant @@ -4243,44 +4223,8 @@ invariant pragma for the same entity. For further details on the use of this pragma, see the Ada 2012 documentation of the Type_Invariant aspect. -@node Pragma Java_Constructor,Pragma Java_Interface,Pragma Invariant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-java-constructor}@anchor{74} -@section Pragma Java_Constructor - - -Syntax: - -@example -pragma Java_Constructor ([Entity =>] function_LOCAL_NAME); -@end example - -This pragma is used to assert that the specified Ada function should be -mapped to the Java constructor for some Ada tagged record type. - -See section 7.3.2 of the -@cite{GNAT User's Guide: Supplement for the JVM Platform.} -for related information. - -@node Pragma Java_Interface,Pragma Keep_Names,Pragma Java_Constructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-java-interface}@anchor{75} -@section Pragma Java_Interface - - -Syntax: - -@example -pragma Java_Interface ([Entity =>] abstract_tagged_type_LOCAL_NAME); -@end example - -This pragma is used to assert that the specified Ada abstract tagged type -is to be mapped to a Java interface name. - -See sections 7.1 and 7.2 of the -@cite{GNAT User's Guide: Supplement for the JVM Platform.} -for related information. - -@node Pragma Keep_Names,Pragma License,Pragma Java_Interface,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{76} +@node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas +@anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{73} @section Pragma Keep_Names @@ -4300,7 +4244,7 @@ use a @cite{Discard_Names} pragma in the @code{gnat.adc} file, but you want to retain the names for specific enumeration types. @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{77} +@anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{74} @section Pragma License @@ -4395,7 +4339,7 @@ GPL, but no warning for @cite{GNAT.Sockets} which is part of the GNAT run time, and is therefore licensed under the modified GPL. @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{78} +@anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{75} @section Pragma Link_With @@ -4419,7 +4363,7 @@ separate arguments to the linker. In addition pragma Link_With allows multiple arguments, with the same effect as successive pragmas. @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{79} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{76} @section Pragma Linker_Alias @@ -4460,7 +4404,7 @@ end p; @end example @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{7a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{77} @section Pragma Linker_Constructor @@ -4490,7 +4434,7 @@ listed above. Where possible, the use of Stand Alone Libraries is preferable to the use of this pragma. @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{7b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{78} @section Pragma Linker_Destructor @@ -4513,7 +4457,7 @@ See @cite{pragma Linker_Constructor} for the set of restrictions that apply because of these specific contexts. @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{7c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{79} @section Pragma Linker_Section @@ -4587,7 +4531,7 @@ end IO_Card; @end example @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{7d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{7a} @section Pragma Lock_Free @@ -4598,7 +4542,7 @@ Compilation fails if the compiler cannot generate lock-free code for the operations. @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{7e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{7b} @section Pragma Loop_Invariant @@ -4631,7 +4575,7 @@ attribute can only be used within the expression of a @cite{Loop_Invariant} pragma. For full details, see documentation of attribute @cite{Loop_Entry}. @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{7f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{7c} @section Pragma Loop_Optimize @@ -4693,7 +4637,7 @@ compiler in order to enable the relevant optimizations, that is to say vectorization. @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{80} +@anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{7d} @section Pragma Loop_Variant @@ -4740,7 +4684,7 @@ The @cite{Loop_Entry} attribute may be used within the expressions of the @cite{Loop_Variant} pragma to refer to values on entry to the loop. @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{81} +@anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{7e} @section Pragma Machine_Attribute @@ -4765,7 +4709,7 @@ for some attributes. For further information see @cite{GNU Compiler Collection (GCC) Internals}. @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{82} +@anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{7f} @section Pragma Main @@ -4785,7 +4729,7 @@ This pragma is provided for compatibility with OpenVMS VAX Systems. It has no effect in GNAT, other than being syntax checked. @node Pragma Main_Storage,Pragma No_Body,Pragma Main,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{83} +@anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{80} @section Pragma Main_Storage @@ -4804,7 +4748,7 @@ This pragma is provided for compatibility with OpenVMS VAX Systems. It has no effect in GNAT, other than being syntax checked. @node Pragma No_Body,Pragma No_Elaboration_Code_All,Pragma Main_Storage,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{84} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{81} @section Pragma No_Body @@ -4827,7 +4771,7 @@ dummy body with a No_Body pragma ensures that there is no interference from earlier versions of the package body. @node Pragma No_Elaboration_Code_All,Pragma No_Inline,Pragma No_Body,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{85} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{82} @section Pragma No_Elaboration_Code_All @@ -4846,7 +4790,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{86} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{83} @section Pragma No_Inline @@ -4864,7 +4808,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{87} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{84} @section Pragma No_Return @@ -4891,7 +4835,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{88} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-run-time}@anchor{85} @section Pragma No_Run_Time @@ -4907,7 +4851,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{89} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{86} @section Pragma No_Strict_Aliasing @@ -4929,7 +4873,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{8a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{87} @section Pragma No_Tagged_Streams @@ -4964,7 +4908,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{8b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{88} @section Pragma Normalize_Scalars @@ -5046,7 +4990,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{8c}@anchor{gnat_rm/implementation_defined_pragmas id2}@anchor{8d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{89}@anchor{gnat_rm/implementation_defined_pragmas id2}@anchor{8a} @section Pragma Obsolescent @@ -5142,7 +5086,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{8e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{8b} @section Pragma Optimize_Alignment @@ -5225,7 +5169,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{8f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{8c} @section Pragma Ordered @@ -5317,7 +5261,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{90} +@anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{8d} @section Pragma Overflow_Mode @@ -5356,7 +5300,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{91} +@anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{8e} @section Pragma Overriding_Renamings @@ -5391,7 +5335,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{92} +@anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{8f} @section Pragma Partition_Elaboration_Policy @@ -5408,7 +5352,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Part_Of,Pragma Passive,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{93} +@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{90} @section Pragma Part_Of @@ -5416,7 +5360,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.2.6. @node Pragma Passive,Pragma Persistent_BSS,Pragma Part_Of,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{94} +@anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{91} @section Pragma Passive @@ -5440,7 +5384,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{95} +@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{92} @section Pragma Persistent_BSS @@ -5471,7 +5415,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{96} +@anchor{gnat_rm/implementation_defined_pragmas pragma-polling}@anchor{93} @section Pragma Polling @@ -5513,7 +5457,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{97} +@anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{94} @section Pragma Post @@ -5538,7 +5482,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{98} +@anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{95} @section Pragma Postcondition @@ -5703,7 +5647,7 @@ Ada 2012, and has been retained in its original form for compatibility purposes. @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{99} +@anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{96} @section Pragma Post_Class @@ -5738,7 +5682,7 @@ policy that controls this pragma is @cite{Post'Class}, not @cite{Post_Class}. @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{9a} +@anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{97} @section Pragma Pre @@ -5763,7 +5707,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{9b} +@anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{98} @section Pragma Precondition @@ -5822,7 +5766,7 @@ Ada 2012, and has been retained in its original form for compatibility purposes. @node Pragma Predicate,Pragma Preelaborable_Initialization,Pragma Precondition,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{9c} +@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{99} @section Pragma Predicate @@ -5876,7 +5820,7 @@ defined for subtype B). When following this approach, the use of predicates should be avoided. @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{9d} +@anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{9a} @section Pragma Preelaborable_Initialization @@ -5891,7 +5835,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{9e} +@anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{9b} @section Pragma Prefix_Exception_Messages @@ -5922,7 +5866,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{9f} +@anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{9c} @section Pragma Pre_Class @@ -5957,7 +5901,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{a0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{9d} @section Pragma Priority_Specific_Dispatching @@ -5981,7 +5925,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{a1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{9e} @section Pragma Profile @@ -6229,7 +6173,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{a2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{9f} @section Pragma Profile_Warnings @@ -6247,7 +6191,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{a3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{a0} @section Pragma Propagate_Exceptions @@ -6266,7 +6210,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{a4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{a1} @section Pragma Provide_Shift_Operators @@ -6286,7 +6230,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{a5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{a2} @section Pragma Psect_Object @@ -6306,7 +6250,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{a6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{a3} @section Pragma Pure_Function @@ -6368,7 +6312,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{a7} +@anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{a4} @section Pragma Rational @@ -6386,7 +6330,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{a8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{a5} @section Pragma Ravenscar @@ -6406,7 +6350,7 @@ pragma Profile (Ravenscar); which is the preferred method of setting the @cite{Ravenscar} profile. @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{a9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{a6} @section Pragma Refined_Depends @@ -6414,7 +6358,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.5. @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{aa} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{a7} @section Pragma Refined_Global @@ -6422,7 +6366,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 6.1.4. @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{ab} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{a8} @section Pragma Refined_Post @@ -6430,7 +6374,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.2.7. @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{ac} +@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{a9} @section Pragma Refined_State @@ -6438,7 +6382,7 @@ For the description of this pragma, see SPARK 2014 Reference Manual, section 7.2.2. @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{ad} +@anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{aa} @section Pragma Relative_Deadline @@ -6453,7 +6397,7 @@ versions of Ada as an implementation-defined pragma. See Ada 2012 Reference Manual for details. @node Pragma Remote_Access_Type,Pragma Restricted_Run_Time,Pragma Relative_Deadline,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{ae} +@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{ab} @section Pragma Remote_Access_Type @@ -6479,7 +6423,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{af} +@anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{ac} @section Pragma Restricted_Run_Time @@ -6500,7 +6444,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{b0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{ad} @section Pragma Restriction_Warnings @@ -6538,7 +6482,7 @@ generating a warning, but any other use of implementation defined pragmas will cause a warning to be generated. @node Pragma Reviewable,Pragma Share_Generic,Pragma Restriction_Warnings,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{b1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{ae} @section Pragma Reviewable @@ -6642,7 +6586,7 @@ comprehensive messages identifying possible problems based on this information. @node Pragma Share_Generic,Pragma Shared,Pragma Reviewable,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{b2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{af} @section Pragma Share_Generic @@ -6660,7 +6604,7 @@ than to check that the given names are all names of generic units or generic instances. @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{b3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{b0} @section Pragma Shared @@ -6668,7 +6612,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{b4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{b1} @section Pragma Short_Circuit_And_Or @@ -6687,7 +6631,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{b5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{b2} @section Pragma Short_Descriptors @@ -6701,7 +6645,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{b6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{b3} @section Pragma Simple_Storage_Pool_Type @@ -6755,7 +6699,7 @@ storage-management discipline). An object of a simple storage pool type can be associated with an access type by specifying the attribute -@ref{b7,,Simple_Storage_Pool}. For example: +@ref{b4,,Simple_Storage_Pool}. For example: @example My_Pool : My_Simple_Storage_Pool_Type; @@ -6765,11 +6709,11 @@ type Acc is access My_Data_Type; for Acc'Simple_Storage_Pool use My_Pool; @end example -See attribute @ref{b7,,Simple_Storage_Pool} +See attribute @ref{b4,,Simple_Storage_Pool} for further details. @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{b8}@anchor{gnat_rm/implementation_defined_pragmas id3}@anchor{b9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{b5}@anchor{gnat_rm/implementation_defined_pragmas id3}@anchor{b6} @section Pragma Source_File_Name @@ -6861,19 +6805,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{ba,,Pragma Source_File_Name_Project}. +Source_File_Name cannot appear after a @ref{b7,,Pragma Source_File_Name_Project}. For more details on the use of the @cite{Source_File_Name} pragma, see the sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes' in the :title:`GNAT User's Guide}. @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{bb}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{ba} +@anchor{gnat_rm/implementation_defined_pragmas id4}@anchor{b8}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{b7} @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{b8,,Pragma Source_File_Name}, and +It cannot appear after a @ref{b5,,Pragma Source_File_Name}, and most importantly, once pragma Source_File_Name_Project appears, no further Source_File_Name pragmas are allowed. @@ -6885,7 +6829,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{bc} +@anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{b9} @section Pragma Source_Reference @@ -6909,7 +6853,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{bd} +@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{ba} @section Pragma SPARK_Mode @@ -6991,7 +6935,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{be} +@anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{bb} @section Pragma Static_Elaboration_Desired @@ -7015,7 +6959,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{bf} +@anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{bc} @section Pragma Stream_Convert @@ -7092,7 +7036,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{c0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{bd} @section Pragma Style_Checks @@ -7165,7 +7109,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{c1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{be} @section Pragma Subtitle @@ -7179,7 +7123,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{c2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{bf} @section Pragma Suppress @@ -7214,6 +7158,13 @@ that use such variables for synchronization purposes. @cite{Duplicated_Tag_Check} Can be used to suppress the check that is generated for a duplicated tag value when a tagged type is declared. +@item +@cite{Container_Checks} Can be used to suppress all checks within Ada.Containers +and instances of its children, including Tampering_Check. + +@item +@cite{Tampering_Check} Can be used to suppress tampering check in the containers. + @item @cite{Predicate_Check} can be used to control whether predicate checks are active. It is applicable only to predicates for which the policy is @@ -7245,7 +7196,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{c3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{c0} @section Pragma Suppress_All @@ -7264,7 +7215,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{c4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{c1} @section Pragma Suppress_Debug_Info @@ -7279,7 +7230,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{c5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{c2} @section Pragma Suppress_Exception_Locations @@ -7302,7 +7253,7 @@ a partition, so it is fine to have some units within a partition compiled with this pragma and others compiled in normal mode without it. @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{c6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{c3} @section Pragma Suppress_Initialization @@ -7347,7 +7298,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{c7} +@anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{c4} @section Pragma Task_Name @@ -7403,7 +7354,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{c8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{c5} @section Pragma Task_Storage @@ -7423,7 +7374,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{c9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{c6} @section Pragma Test_Case @@ -7479,7 +7430,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{ca} +@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{c7} @section Pragma Thread_Local_Storage @@ -7513,7 +7464,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{cb} +@anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{c8} @section Pragma Time_Slice @@ -7529,7 +7480,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{cc} +@anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{c9} @section Pragma Title @@ -7554,7 +7505,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{cd} +@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{ca} @section Pragma Type_Invariant @@ -7575,7 +7526,7 @@ controlled by the assertion identifier @cite{Type_Invariant} rather than @cite{Invariant}. @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{ce} +@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{cb} @section Pragma Type_Invariant_Class @@ -7602,7 +7553,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{cf} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{cc} @section Pragma Unchecked_Union @@ -7622,7 +7573,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{d0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{cd} @section Pragma Unevaluated_Use_Of_Old @@ -7677,7 +7628,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{d1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{ce} @section Pragma Unimplemented_Unit @@ -7697,7 +7648,7 @@ The abort only happens if code is being generated. Thus you can use specs of unimplemented packages in syntax or semantic checking mode. @node Pragma Universal_Aliasing,Pragma Universal_Data,Pragma Unimplemented_Unit,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{d2} +@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{cf} @section Pragma Universal_Aliasing @@ -7716,7 +7667,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{d3} +@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-data}@anchor{d0} @section Pragma Universal_Data @@ -7740,7 +7691,7 @@ of this pragma is also available by applying the -univ switch on the compilations of units where universal addressing of the data is desired. @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Data,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{d4} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{d1} @section Pragma Unmodified @@ -7774,7 +7725,7 @@ Thus it is never necessary to use @cite{pragma Unmodified} for such variables, though it is harmless to do so. @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{d5} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{d2} @section Pragma Unreferenced @@ -7818,7 +7769,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{8c,,Pragma Obsolescent}. +for this purpose, see @ref{89,,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 @@ -7834,7 +7785,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{d6} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{d3} @section Pragma Unreferenced_Objects @@ -7859,7 +7810,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{d7} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{d4} @section Pragma Unreserve_All_Interrupts @@ -7895,7 +7846,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{d8} +@anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{d5} @section Pragma Unsuppress @@ -7926,12 +7877,12 @@ pragma Unsuppress (Duplicated_Tag_Check); This pragma is standard in Ada 2005. It is available in all earlier versions of Ada as an implementation-defined pragma. -Note that in addition to the checks defined in the Ada RM, GNAT recogizes -a number of implementation-defined check names. See description of pragma +Note that in addition to the checks defined in the Ada RM, GNAT recogizes a +number of implementation-defined check names. See the description of pragma @cite{Suppress} for full details. @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unsuppress,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{d9} +@anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{d6} @section Pragma Use_VADS_Size @@ -7955,7 +7906,7 @@ as implemented in the VADS compiler. See description of the VADS_Size attribute for further details. @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{da} +@anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{d7} @section Pragma Validity_Checks @@ -8012,7 +7963,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{db} +@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{d8} @section Pragma Volatile @@ -8030,7 +7981,7 @@ implementation of pragma Volatile is upwards compatible with the implementation in DEC Ada 83. @node Pragma Volatile_Full_Access,Pragma Warning_As_Error,Pragma Volatile,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{dc} +@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{d9} @section Pragma Volatile_Full_Access @@ -8062,7 +8013,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 Warning_As_Error,Pragma Warnings,Pragma Volatile_Full_Access,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{dd} +@anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{da} @section Pragma Warning_As_Error @@ -8097,7 +8048,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{de,,Pragma Warnings}. +warnings provided by the back end and mentioned in @ref{db,,Pragma Warnings}. By using a single full @emph{-Wxxx} switch in the pragma, such warnings can also be treated as errors. @@ -8147,7 +8098,7 @@ the tag is changed from "warning:" to "error:" and the string "[warning-as-error]" is appended to the end of the message. @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas -@anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{df}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{de} +@anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{db} @section Pragma Warnings @@ -8299,7 +8250,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{e0} +@anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{dd} @section Pragma Weak_External @@ -8350,7 +8301,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{e1} +@anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{de} @section Pragma Wide_Character_Encoding @@ -8377,7 +8328,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{e2}@anchor{gnat_rm/implementation_defined_aspects doc}@anchor{e3}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{e4} +@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{df}@anchor{gnat_rm/implementation_defined_aspects doc}@anchor{e0}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{e1} @chapter Implementation Defined Aspects @@ -8487,7 +8438,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{e5} +@anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{e2} @section Aspect Abstract_State @@ -8496,7 +8447,7 @@ or attribute definition clause. This aspect is equivalent to pragma @cite{Abstract_State}. @node Annotate,Aspect Async_Readers,Aspect Abstract_State,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects annotate}@anchor{e6} +@anchor{gnat_rm/implementation_defined_aspects annotate}@anchor{e3} @section Annotate @@ -8522,7 +8473,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{e7} +@anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{e4} @section Aspect Async_Readers @@ -8531,7 +8482,7 @@ Equivalent to @cite{pragma Annotate (ID@comma{} ID @{@comma{} ARG@}@comma{} Enti This boolean aspect is equivalent to pragma @cite{Async_Readers}. @node Aspect Async_Writers,Aspect Contract_Cases,Aspect Async_Readers,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{e8} +@anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{e5} @section Aspect Async_Writers @@ -8540,7 +8491,7 @@ This boolean aspect is equivalent to pragma @cite{Async_Readers}. This boolean aspect is equivalent to pragma @cite{Async_Writers}. @node Aspect Contract_Cases,Aspect Depends,Aspect Async_Writers,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{e9} +@anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{e6} @section Aspect Contract_Cases @@ -8551,7 +8502,7 @@ of clauses being enclosed in parentheses so that syntactically it is an aggregate. @node Aspect Depends,Aspect Dimension,Aspect Contract_Cases,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{ea} +@anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{e7} @section Aspect Depends @@ -8560,7 +8511,7 @@ aggregate. This aspect is equivalent to pragma @cite{Depends}. @node Aspect Dimension,Aspect Dimension_System,Aspect Depends,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{eb} +@anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{e8} @section Aspect Dimension @@ -8596,7 +8547,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{ec} +@anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{e9} @section Aspect Dimension_System @@ -8656,7 +8607,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{ed} +@anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{ea} @section Aspect Disable_Controlled @@ -8669,7 +8620,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{ee} +@anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{eb} @section Aspect Effective_Reads @@ -8678,7 +8629,7 @@ whether some run-time check is enabled or suppressed. This aspect is equivalent to pragma @cite{Effective_Reads}. @node Aspect Effective_Writes,Aspect Favor_Top_Level,Aspect Effective_Reads,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{ef} +@anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{ec} @section Aspect Effective_Writes @@ -8687,7 +8638,7 @@ This aspect is equivalent to pragma @cite{Effective_Reads}. This aspect is equivalent to pragma @cite{Effective_Writes}. @node Aspect Favor_Top_Level,Aspect Global,Aspect Effective_Writes,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{f0} +@anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{ed} @section Aspect Favor_Top_Level @@ -8696,7 +8647,7 @@ This aspect is equivalent to pragma @cite{Effective_Writes}. This boolean aspect is equivalent to pragma @cite{Favor_Top_Level}. @node Aspect Global,Aspect Initial_Condition,Aspect Favor_Top_Level,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{f1} +@anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{ee} @section Aspect Global @@ -8705,7 +8656,7 @@ This boolean aspect is equivalent to pragma @cite{Favor_Top_Level}. This aspect is equivalent to pragma @cite{Global}. @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{f2} +@anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{ef} @section Aspect Initial_Condition @@ -8714,7 +8665,7 @@ This aspect is equivalent to pragma @cite{Global}. This aspect is equivalent to pragma @cite{Initial_Condition}. @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{f3} +@anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{f0} @section Aspect Initializes @@ -8723,7 +8674,7 @@ This aspect is equivalent to pragma @cite{Initial_Condition}. This aspect is equivalent to pragma @cite{Initializes}. @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{f4} +@anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{f1} @section Aspect Inline_Always @@ -8732,7 +8683,7 @@ This aspect is equivalent to pragma @cite{Initializes}. This boolean aspect is equivalent to pragma @cite{Inline_Always}. @node Aspect Invariant,Aspect Invariant'Class,Aspect Inline_Always,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{f5} +@anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{f2} @section Aspect Invariant @@ -8743,7 +8694,7 @@ synonym for the language defined aspect @cite{Type_Invariant} except that it is separately controllable using pragma @cite{Assertion_Policy}. @node Aspect Invariant'Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{f6} +@anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{f3} @section Aspect Invariant'Class @@ -8754,7 +8705,7 @@ synonym for the language defined aspect @cite{Type_Invariant'Class} except that it is separately controllable using pragma @cite{Assertion_Policy}. @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant'Class,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{f7} +@anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{f4} @section Aspect Iterable @@ -8830,7 +8781,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{f8} +@anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{f5} @section Aspect Linker_Section @@ -8839,7 +8790,7 @@ This aspect is used in the GNAT-defined formal container packages. This aspect is equivalent to an @cite{Linker_Section} pragma. @node Aspect Lock_Free,Aspect No_Elaboration_Code_All,Aspect Linker_Section,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{f9} +@anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{f6} @section Aspect Lock_Free @@ -8848,7 +8799,7 @@ This aspect is equivalent to an @cite{Linker_Section} pragma. This boolean aspect is equivalent to pragma @cite{Lock_Free}. @node Aspect No_Elaboration_Code_All,Aspect No_Tagged_Streams,Aspect Lock_Free,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{fa} +@anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{f7} @section Aspect No_Elaboration_Code_All @@ -8858,7 +8809,7 @@ This aspect is equivalent to a @cite{pragma No_Elaboration_Code_All} statement for a program unit. @node Aspect No_Tagged_Streams,Aspect Object_Size,Aspect No_Elaboration_Code_All,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{fb} +@anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{f8} @section Aspect No_Tagged_Streams @@ -8869,7 +8820,7 @@ argument specifying a root tagged type (thus this aspect can only be applied to such a type). @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Tagged_Streams,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{fc} +@anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{f9} @section Aspect Object_Size @@ -8879,7 +8830,7 @@ This aspect is equivalent to an @cite{Object_Size} attribute definition clause. @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{fd} +@anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{fa} @section Aspect Obsolescent @@ -8890,7 +8841,7 @@ evaluation of this aspect happens at the point of occurrence, it is not delayed until the freeze point. @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{fe} +@anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{fb} @section Aspect Part_Of @@ -8899,7 +8850,7 @@ delayed until the freeze point. This aspect is equivalent to pragma @cite{Part_Of}. @node Aspect Persistent_BSS,Aspect Predicate,Aspect Part_Of,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{ff} +@anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{fc} @section Aspect Persistent_BSS @@ -8908,7 +8859,7 @@ This aspect is equivalent to pragma @cite{Part_Of}. This boolean aspect is equivalent to pragma @cite{Persistent_BSS}. @node Aspect Predicate,Aspect Pure_Function,Aspect Persistent_BSS,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{100} +@anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{fd} @section Aspect Predicate @@ -8922,7 +8873,7 @@ expression. It is also separately controllable using pragma @cite{Assertion_Policy}. @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Predicate,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{101} +@anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{fe} @section Aspect Pure_Function @@ -8931,7 +8882,7 @@ expression. It is also separately controllable using pragma This boolean aspect is equivalent to pragma @cite{Pure_Function}. @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{102} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{ff} @section Aspect Refined_Depends @@ -8940,7 +8891,7 @@ This boolean aspect is equivalent to pragma @cite{Pure_Function}. This aspect is equivalent to pragma @cite{Refined_Depends}. @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{103} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{100} @section Aspect Refined_Global @@ -8949,7 +8900,7 @@ This aspect is equivalent to pragma @cite{Refined_Depends}. This aspect is equivalent to pragma @cite{Refined_Global}. @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{104} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{101} @section Aspect Refined_Post @@ -8958,7 +8909,7 @@ This aspect is equivalent to pragma @cite{Refined_Global}. This aspect is equivalent to pragma @cite{Refined_Post}. @node Aspect Refined_State,Aspect Remote_Access_Type,Aspect Refined_Post,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{105} +@anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{102} @section Aspect Refined_State @@ -8967,7 +8918,7 @@ This aspect is equivalent to pragma @cite{Refined_Post}. This aspect is equivalent to pragma @cite{Refined_State}. @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Refined_State,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{106} +@anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{103} @section Aspect Remote_Access_Type @@ -8976,7 +8927,7 @@ This aspect is equivalent to pragma @cite{Refined_State}. This aspect is equivalent to pragma @cite{Remote_Access_Type}. @node Aspect Scalar_Storage_Order,Aspect Shared,Aspect Remote_Access_Type,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{107} +@anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{104} @section Aspect Scalar_Storage_Order @@ -8986,7 +8937,7 @@ This aspect is equivalent to a @cite{Scalar_Storage_Order} attribute definition clause. @node Aspect Shared,Aspect Simple_Storage_Pool,Aspect Scalar_Storage_Order,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{108} +@anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{105} @section Aspect Shared @@ -8996,7 +8947,7 @@ This boolean aspect is equivalent to pragma @cite{Shared}, and is thus a synonym for aspect @cite{Atomic}. @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Shared,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{109} +@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{106} @section Aspect Simple_Storage_Pool @@ -9006,7 +8957,7 @@ This aspect is equivalent to a @cite{Simple_Storage_Pool} attribute definition clause. @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{10a} +@anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{107} @section Aspect Simple_Storage_Pool_Type @@ -9015,7 +8966,7 @@ attribute definition clause. This boolean aspect is equivalent to pragma @cite{Simple_Storage_Pool_Type}. @node Aspect SPARK_Mode,Aspect Suppress_Debug_Info,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{10b} +@anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{108} @section Aspect SPARK_Mode @@ -9026,7 +8977,7 @@ may be specified for either or both of the specification and body of a subprogram or package. @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect SPARK_Mode,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{10c} +@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{109} @section Aspect Suppress_Debug_Info @@ -9035,7 +8986,7 @@ of a subprogram or package. This boolean aspect is equivalent to pragma @cite{Suppress_Debug_Info}. @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{10d} +@anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{10a} @section Aspect Suppress_Initialization @@ -9044,7 +8995,7 @@ This boolean aspect is equivalent to pragma @cite{Suppress_Debug_Info}. This boolean aspect is equivalent to pragma @cite{Suppress_Initialization}. @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{10e} +@anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{10b} @section Aspect Test_Case @@ -9053,7 +9004,7 @@ This boolean aspect is equivalent to pragma @cite{Suppress_Initialization}. This aspect is equivalent to pragma @cite{Test_Case}. @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{10f} +@anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{10c} @section Aspect Thread_Local_Storage @@ -9062,7 +9013,7 @@ This aspect is equivalent to pragma @cite{Test_Case}. This boolean aspect is equivalent to pragma @cite{Thread_Local_Storage}. @node Aspect Universal_Aliasing,Aspect Universal_Data,Aspect Thread_Local_Storage,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{110} +@anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{10d} @section Aspect Universal_Aliasing @@ -9071,7 +9022,7 @@ This boolean aspect is equivalent to pragma @cite{Thread_Local_Storage}. This boolean aspect is equivalent to pragma @cite{Universal_Aliasing}. @node Aspect Universal_Data,Aspect Unmodified,Aspect Universal_Aliasing,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-universal-data}@anchor{111} +@anchor{gnat_rm/implementation_defined_aspects aspect-universal-data}@anchor{10e} @section Aspect Universal_Data @@ -9080,7 +9031,7 @@ This boolean aspect is equivalent to pragma @cite{Universal_Aliasing}. This aspect is equivalent to pragma @cite{Universal_Data}. @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Data,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{112} +@anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{10f} @section Aspect Unmodified @@ -9089,7 +9040,7 @@ This aspect is equivalent to pragma @cite{Universal_Data}. This boolean aspect is equivalent to pragma @cite{Unmodified}. @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{113} +@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{110} @section Aspect Unreferenced @@ -9100,7 +9051,7 @@ in the case of formal parameters, it is not permitted to have aspects for a formal parameter, so in this case the pragma form must be used. @node Aspect Unreferenced_Objects,Aspect Value_Size,Aspect Unreferenced,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{114} +@anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{111} @section Aspect Unreferenced_Objects @@ -9109,7 +9060,7 @@ a formal parameter, so in this case the pragma form must be used. This boolean aspect is equivalent to pragma @cite{Unreferenced_Objects}. @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect Unreferenced_Objects,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{115} +@anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{112} @section Aspect Value_Size @@ -9119,7 +9070,7 @@ This aspect is equivalent to a @cite{Value_Size} attribute definition clause. @node Aspect Volatile_Full_Access,Aspect Warnings,Aspect Value_Size,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{116} +@anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{113} @section Aspect Volatile_Full_Access @@ -9128,7 +9079,7 @@ attribute definition clause. This boolean aspect is equivalent to pragma @cite{Volatile_Full_Access}. @node Aspect Warnings,,Aspect Volatile_Full_Access,Implementation Defined Aspects -@anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{117} +@anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{114} @section Aspect Warnings @@ -9139,7 +9090,7 @@ where the first argument is @cite{ON} or @cite{OFF} and the second argument is the entity. @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top -@anchor{gnat_rm/implementation_defined_attributes doc}@anchor{118}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{119} +@anchor{gnat_rm/implementation_defined_attributes doc}@anchor{115}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{116} @chapter Implementation Defined Attributes @@ -9240,7 +9191,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{11a} +@anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{117} @section Attribute Abort_Signal @@ -9254,7 +9205,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{11b} +@anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{118} @section Attribute Address_Size @@ -9270,7 +9221,7 @@ reference to System.Address'Size is non-static because Address is a private type. @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{11c} +@anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{119} @section Attribute Asm_Input @@ -9284,10 +9235,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{11d,,Machine Code Insertions} +@ref{11a,,Machine Code Insertions} @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{11e} +@anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{11b} @section Attribute Asm_Output @@ -9303,10 +9254,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{11d,,Machine Code Insertions} +@ref{11a,,Machine Code Insertions} @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{11f} +@anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{11c} @section Attribute Atomic_Always_Lock_Free @@ -9318,7 +9269,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{120} +@anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{11d} @section Attribute Bit @@ -9349,7 +9300,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{121} +@anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{11e} @section Attribute Bit_Position @@ -9364,7 +9315,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{122} +@anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{11f} @section Attribute Code_Address @@ -9407,7 +9358,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{123} +@anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{120} @section Attribute Compiler_Version @@ -9418,7 +9369,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{124} +@anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{121} @section Attribute Constrained @@ -9433,7 +9384,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{125} +@anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{122} @section Attribute Default_Bit_Order @@ -9450,7 +9401,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{126} +@anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{123} @section Attribute Default_Scalar_Storage_Order @@ -9467,7 +9418,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{127} +@anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{124} @section Attribute Deref @@ -9480,7 +9431,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{128} +@anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{125} @section Attribute Descriptor_Size @@ -9507,7 +9458,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{129} +@anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{126} @section Attribute Elaborated @@ -9522,7 +9473,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{12a} +@anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{127} @section Attribute Elab_Body @@ -9538,7 +9489,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{12b} +@anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{128} @section Attribute Elab_Spec @@ -9554,7 +9505,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{12c} +@anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{129} @section Attribute Elab_Subp_Body @@ -9568,7 +9519,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{12d} +@anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{12a} @section Attribute Emax @@ -9581,7 +9532,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{12e} +@anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{12b} @section Attribute Enabled @@ -9605,7 +9556,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{12f} +@anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{12c} @section Attribute Enum_Rep @@ -9642,7 +9593,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{130} +@anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{12d} @section Attribute Enum_Val @@ -9665,7 +9616,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{131} +@anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{12e} @section Attribute Epsilon @@ -9678,7 +9629,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Fast_Math,Attribute Fixed_Value,Attribute Epsilon,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{132} +@anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{12f} @section Attribute Fast_Math @@ -9689,7 +9640,7 @@ prefix) yields a static Boolean value that is True if pragma @cite{Fast_Math} is active, and False otherwise. @node Attribute Fixed_Value,Attribute From_Any,Attribute Fast_Math,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{133} +@anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{130} @section Attribute Fixed_Value @@ -9716,7 +9667,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{134} +@anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{131} @section Attribute From_Any @@ -9726,7 +9677,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{135} +@anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{132} @section Attribute Has_Access_Values @@ -9744,7 +9695,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{136} +@anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{133} @section Attribute Has_Discriminants @@ -9760,7 +9711,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{137} +@anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{134} @section Attribute Img @@ -9790,7 +9741,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{138} +@anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{135} @section Attribute Integer_Value @@ -9818,7 +9769,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{139} +@anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{136} @section Attribute Invalid_Value @@ -9832,7 +9783,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{13a} +@anchor{gnat_rm/implementation_defined_attributes attribute-iterable}@anchor{137} @section Attribute Iterable @@ -9841,7 +9792,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{13b} +@anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{138} @section Attribute Large @@ -9854,7 +9805,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{13c} +@anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{139} @section Attribute Library_Level @@ -9880,7 +9831,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{13d} +@anchor{gnat_rm/implementation_defined_attributes attribute-lock-free}@anchor{13a} @section Attribute Lock_Free @@ -9890,7 +9841,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{13e} +@anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{13b} @section Attribute Loop_Entry @@ -9920,7 +9871,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{13f} +@anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{13c} @section Attribute Machine_Size @@ -9930,7 +9881,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{140} +@anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{13d} @section Attribute Mantissa @@ -9943,7 +9894,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{141}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{142} +@anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{13e}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{13f} @section Attribute Maximum_Alignment @@ -9959,7 +9910,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{143} +@anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{140} @section Attribute Mechanism_Code @@ -9990,7 +9941,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{144} +@anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{141} @section Attribute Null_Parameter @@ -10015,7 +9966,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{145} +@anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{142} @section Attribute Object_Size @@ -10085,7 +10036,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{146} +@anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{143} @section Attribute Old @@ -10100,7 +10051,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{147} +@anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{144} @section Attribute Passed_By_Reference @@ -10116,7 +10067,7 @@ passed by copy in calls. For scalar types, the result is always @cite{False} and is static. For non-scalar types, the result is non-static. @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{148} +@anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{145} @section Attribute Pool_Address @@ -10141,7 +10092,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{149} +@anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{146} @section Attribute Range_Length @@ -10154,7 +10105,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{14a} +@anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{147} @section Attribute Restriction_Set @@ -10224,7 +10175,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{14b} +@anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{148} @section Attribute Result @@ -10237,7 +10188,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{14c} +@anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{149} @section Attribute Safe_Emax @@ -10250,7 +10201,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{14d} +@anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{14a} @section Attribute Safe_Large @@ -10263,7 +10214,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{14e} +@anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{14b} @section Attribute Safe_Small @@ -10276,7 +10227,7 @@ the Ada 83 reference manual for an exact description of the semantics of this attribute. @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{14f} +@anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{14c} @section Attribute Scalar_Storage_Order @@ -10393,7 +10344,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{b7}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{150} +@anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{b4}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{14d} @section Attribute Simple_Storage_Pool @@ -10456,7 +10407,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{151} +@anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{14e} @section Attribute Small @@ -10472,7 +10423,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{152} +@anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{14f} @section Attribute Storage_Unit @@ -10482,7 +10433,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{153} +@anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{150} @section Attribute Stub_Type @@ -10506,7 +10457,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{154} +@anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{151} @section Attribute System_Allocator_Alignment @@ -10523,7 +10474,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{155} +@anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{152} @section Attribute Target_Name @@ -10536,7 +10487,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{156} +@anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{153} @section Attribute To_Address @@ -10559,7 +10510,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{157} +@anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{154} @section Attribute To_Any @@ -10569,7 +10520,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{158} +@anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{155} @section Attribute Type_Class @@ -10599,7 +10550,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{159} +@anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{156} @section Attribute Type_Key @@ -10611,7 +10562,7 @@ about the type or subtype. This provides improved compatibility with other implementations that support this attribute. @node Attribute TypeCode,Attribute UET_Address,Attribute Type_Key,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{15a} +@anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{157} @section Attribute TypeCode @@ -10621,7 +10572,7 @@ This internal attribute is used for the generation of remote subprogram stubs in the context of the Distributed Systems Annex. @node Attribute UET_Address,Attribute Unconstrained_Array,Attribute TypeCode,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-uet-address}@anchor{15b} +@anchor{gnat_rm/implementation_defined_attributes attribute-uet-address}@anchor{158} @section Attribute UET_Address @@ -10635,7 +10586,7 @@ intended only for use within the GNAT implementation. See the unit for details on how this attribute is used in the implementation. @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute UET_Address,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{15c} +@anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{159} @section Attribute Unconstrained_Array @@ -10649,7 +10600,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{15d} +@anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{15a} @section Attribute Universal_Literal_String @@ -10677,7 +10628,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{15e} +@anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{15b} @section Attribute Unrestricted_Access @@ -10864,7 +10815,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{15f} +@anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{15c} @section Attribute Update @@ -10945,7 +10896,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{160} +@anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{15d} @section Attribute Valid_Scalars @@ -10980,7 +10931,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{161} +@anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{15e} @section Attribute VADS_Size @@ -11000,7 +10951,7 @@ gives the result that would be obtained by applying the attribute to the corresponding type. @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes -@anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{162} +@anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{15f} @section Attribute Value_Size @@ -11014,7 +10965,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{163} +@anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{160} @section Attribute Wchar_T_Size @@ -11026,7 +10977,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{164} +@anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{161} @section Attribute Word_Size @@ -11037,7 +10988,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{165}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{166} +@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{162}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{163} @chapter Standard and Implementation Defined Restrictions @@ -11066,7 +11017,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{167}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{168} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{164}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{165} @section Partition-Wide Restrictions @@ -11089,6 +11040,7 @@ then all compilation units in the partition must obey the restriction). * No_Access_Subprograms:: * No_Allocators:: * No_Anonymous_Allocators:: +* No_Asynchronous_Control:: * No_Calendar:: * No_Coextensions:: * No_Default_Initialization:: @@ -11141,6 +11093,8 @@ then all compilation units in the partition must obey the restriction). * No_Tasking:: * No_Terminate_Alternatives:: * No_Unchecked_Access:: +* No_Unchecked_Conversion:: +* No_Unchecked_Deallocation:: * No_Use_Of_Entity:: * Simple_Barriers:: * Static_Priorities:: @@ -11149,7 +11103,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{169} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{166} @subsection Immediate_Reclamation @@ -11161,7 +11115,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{16a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{167} @subsection Max_Asynchronous_Select_Nesting @@ -11173,7 +11127,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{16b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{168} @subsection Max_Entry_Queue_Length @@ -11194,7 +11148,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{16c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{169} @subsection Max_Protected_Entries @@ -11205,7 +11159,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{16d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{16a} @subsection Max_Select_Alternatives @@ -11214,7 +11168,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{16e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{16b} @subsection Max_Storage_At_Blocking @@ -11225,7 +11179,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{16f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{16c} @subsection Max_Task_Entries @@ -11238,7 +11192,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{170} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{16d} @subsection Max_Tasks @@ -11251,7 +11205,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{171} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{16e} @subsection No_Abort_Statements @@ -11261,7 +11215,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{172} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{16f} @subsection No_Access_Parameter_Allocators @@ -11272,7 +11226,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{173} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{170} @subsection No_Access_Subprograms @@ -11282,7 +11236,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{174} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{171} @subsection No_Allocators @@ -11291,8 +11245,8 @@ declarations of access-to-subprogram types. [RM H.4] This restriction ensures at compile time that there are no occurrences of an allocator. -@node No_Anonymous_Allocators,No_Calendar,No_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{175} +@node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{172} @subsection No_Anonymous_Allocators @@ -11301,18 +11255,28 @@ occurrences of an allocator. [RM H.4] This restriction ensures at compile time that there are no occurrences of an allocator of anonymous access type. -@node No_Calendar,No_Coextensions,No_Anonymous_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{176} +@node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{173} +@subsection No_Asynchronous_Control + + +@geindex No_Asynchronous_Control + +[RM J.13] This restriction ensures at compile time that there are no semantic +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{174} @subsection No_Calendar @geindex No_Calendar -[GNAT] This restriction ensures at compile time that there is no implicit or -explicit dependence on the package @cite{Ada.Calendar}. +[GNAT] This restriction ensures at compile time that there are no semantic +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{177} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{175} @subsection No_Coextensions @@ -11322,7 +11286,7 @@ explicit dependence on the package @cite{Ada.Calendar}. coextensions. See 3.10.2. @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{178} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{176} @subsection No_Default_Initialization @@ -11339,27 +11303,27 @@ 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{179} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{177} @subsection No_Delay @geindex No_Delay [RM H.4] This restriction ensures at compile time that there are no -delay statements and no dependences on package Calendar. +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{17a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{178} @subsection No_Dependence @geindex No_Dependence -[RM 13.12.1] This restriction checks at compile time that there are no -dependence on a library unit. +[RM 13.12.1] This restriction ensures at compile time that there are no +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{17b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{179} @subsection No_Direct_Boolean_Operators @@ -11372,7 +11336,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{17c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{17a} @subsection No_Dispatch @@ -11382,7 +11346,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{17d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{17b} @subsection No_Dispatching_Calls @@ -11443,7 +11407,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{17e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{17c} @subsection No_Dynamic_Attachment @@ -11462,7 +11426,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{17f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{17d} @subsection No_Dynamic_Priorities @@ -11471,7 +11435,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{180} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{17e} @subsection No_Entry_Calls_In_Elaboration_Code @@ -11483,7 +11447,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{181} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{17f} @subsection No_Enumeration_Maps @@ -11494,7 +11458,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{182} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{180} @subsection No_Exception_Handlers @@ -11519,7 +11483,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{183} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{181} @subsection No_Exception_Propagation @@ -11536,7 +11500,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{184} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{182} @subsection No_Exception_Registration @@ -11550,7 +11514,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{185} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{183} @subsection No_Exceptions @@ -11560,7 +11524,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{186} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{184} @subsection No_Finalization @@ -11601,7 +11565,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{187} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{185} @subsection No_Fixed_Point @@ -11611,7 +11575,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{188} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{186} @subsection No_Floating_Point @@ -11621,7 +11585,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{189} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{187} @subsection No_Implicit_Conditionals @@ -11637,7 +11601,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{18a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{188} @subsection No_Implicit_Dynamic_Code @@ -11667,7 +11631,7 @@ foreign-language convention; primitive operations of nested tagged types. @node No_Implicit_Heap_Allocations,No_Implicit_Loops,No_Implicit_Dynamic_Code,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{18b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{189} @subsection No_Implicit_Heap_Allocations @@ -11676,7 +11640,7 @@ types. [RM D.7] No constructs are allowed to cause implicit heap allocation. @node No_Implicit_Loops,No_Initialize_Scalars,No_Implicit_Heap_Allocations,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{18c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{18a} @subsection No_Implicit_Loops @@ -11693,7 +11657,7 @@ components. Otherwise, a loop is created for arrays larger than about 5000 scalar components. @node No_Initialize_Scalars,No_IO,No_Implicit_Loops,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{18d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{18b} @subsection No_Initialize_Scalars @@ -11705,7 +11669,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{18e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{18c} @subsection No_IO @@ -11716,7 +11680,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{18f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{18d} @subsection No_Local_Allocators @@ -11727,7 +11691,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{190} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{18e} @subsection No_Local_Protected_Objects @@ -11737,7 +11701,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{191} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{18f} @subsection No_Local_Timing_Events @@ -11747,7 +11711,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{192} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{190} @subsection No_Long_Long_Integers @@ -11759,7 +11723,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{193} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{191} @subsection No_Multiple_Elaboration @@ -11780,7 +11744,7 @@ possible, including non-Ada main programs, and Stand Alone libraries, are not permitted, and will be diagnosed by the binder. @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{194} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{192} @subsection No_Nested_Finalization @@ -11789,7 +11753,7 @@ permitted, and will be diagnosed by the binder. [RM D.7] All objects requiring finalization are declared at the library level. @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{195} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{193} @subsection No_Protected_Type_Allocators @@ -11799,7 +11763,7 @@ permitted, and will be diagnosed by the binder. expressions that attempt to allocate protected objects. @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{196} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{194} @subsection No_Protected_Types @@ -11809,7 +11773,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{197} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{195} @subsection No_Recursion @@ -11819,7 +11783,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{198} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{196} @subsection No_Reentrancy @@ -11829,7 +11793,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{199} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{197} @subsection No_Relative_Delay @@ -11840,7 +11804,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{19a} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{198} @subsection No_Requeue_Statements @@ -11858,7 +11822,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{19b} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{199} @subsection No_Secondary_Stack @@ -11870,7 +11834,7 @@ stack is used to implement functions returning unconstrained objects (arrays or records) on some targets. @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{19c} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{19a} @subsection No_Select_Statements @@ -11880,7 +11844,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{19d} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{19b} @subsection No_Specific_Termination_Handlers @@ -11890,7 +11854,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{19e} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{19c} @subsection No_Specification_of_Aspect @@ -11901,7 +11865,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{19f} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{19d} @subsection No_Standard_Allocators_After_Elaboration @@ -11913,7 +11877,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{1a0} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{19e} @subsection No_Standard_Storage_Pools @@ -11925,7 +11889,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{1a1} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{19f} @subsection No_Stream_Optimizations @@ -11938,7 +11902,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{1a2} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{1a0} @subsection No_Streams @@ -11959,7 +11923,7 @@ unit declaring a tagged type should be compiled with the restriction, though this is not required. @node No_Task_Allocators,No_Task_Attributes_Package,No_Streams,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{1a3} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{1a1} @subsection No_Task_Allocators @@ -11969,7 +11933,7 @@ though this is not required. or types containing task subcomponents. @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_Allocators,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1a4} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{1a2} @subsection No_Task_Attributes_Package @@ -11986,7 +11950,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{1a5} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{1a3} @subsection No_Task_Hierarchy @@ -11996,7 +11960,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{1a6} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{1a4} @subsection No_Task_Termination @@ -12005,7 +11969,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{1a7} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{1a5} @subsection No_Tasking @@ -12018,7 +11982,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{1a8} +@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{1a6} @subsection No_Terminate_Alternatives @@ -12026,8 +11990,8 @@ binder. [RM D.7] There are no selective accepts with terminate alternatives. -@node No_Unchecked_Access,No_Use_Of_Entity,No_Terminate_Alternatives,Partition-Wide Restrictions -@anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{1a9} +@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{1a7} @subsection No_Unchecked_Access @@ -12036,7 +12000,27 @@ binder. [RM H.4] This restriction ensures at compile time that there are no occurrences of the Unchecked_Access attribute. -@node No_Use_Of_Entity,Simple_Barriers,No_Unchecked_Access,Partition-Wide Restrictions +@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{1a8} +@subsection No_Unchecked_Conversion + + +@geindex No_Unchecked_Conversion + +[RM J.13] This restriction ensures at compile time that there are no semantic +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{1a9} +@subsection No_Unchecked_Deallocation + + +@geindex No_Unchecked_Deallocation + +[RM J.13] This restriction ensures at compile time that there are no semantic +dependences on the predefined generic procedure Unchecked_Deallocation. + +@node No_Use_Of_Entity,Simple_Barriers,No_Unchecked_Deallocation,Partition-Wide Restrictions @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{1aa} @subsection No_Use_Of_Entity @@ -15320,18 +15304,11 @@ the last line is a single @cite{LF} character (@cite{16#0A#}). "Implementation-defined check names. See 11.5(27)." @end itemize -The implementation defined check name Alignment_Check controls checking of -address clause values for proper alignment (that is, the address supplied -must be consistent with the alignment of the type). - -The implementation defined check name Predicate_Check controls whether -predicate checks are generated. - -The implementation defined check name Validity_Check controls whether -validity checks are generated. - -In addition, a user program can add implementation-defined check names -by means of the pragma Check_Name. +The implementation defined check names include Alignment_Check, +Atomic_Synchronization, Duplicated_Tag_Check, Container_Checks, +Tampering_Check, Predicate_Check, and Validity_Check. In addition, a user +program can add implementation-defined check names by means of the pragma +Check_Name. See the description of pragma @cite{Suppress} for full details. @itemize * @@ -17239,7 +17216,7 @@ For primitive types, the alignment is the minimum of the actual size of objects of the type divided by @cite{Storage_Unit}, and the maximum alignment supported by the target. (This maximum alignment is given by the GNAT-specific attribute -@cite{Standard'Maximum_Alignment}; see @ref{141,,Attribute Maximum_Alignment}.) +@cite{Standard'Maximum_Alignment}; see @ref{13e,,Attribute Maximum_Alignment}.) @geindex Maximum_Alignment attribute @@ -21884,6 +21861,7 @@ of GNAT, and will generate a warning message. * GNAT.Altivec.Vector_Views (g-alvevi.ads): GNAT Altivec Vector_Views g-alvevi ads. * GNAT.Array_Split (g-arrspl.ads): GNAT Array_Split g-arrspl ads. * GNAT.AWK (g-awk.ads): GNAT AWK g-awk ads. +* GNAT.Bind_Environment (g-binenv.ads): GNAT Bind_Environment g-binenv ads. * GNAT.Bounded_Buffers (g-boubuf.ads): GNAT Bounded_Buffers g-boubuf ads. * GNAT.Bounded_Mailboxes (g-boumai.ads): GNAT Bounded_Mailboxes g-boumai ads. * GNAT.Bubble_Sort (g-bubsor.ads): GNAT Bubble_Sort g-bubsor ads. @@ -22607,7 +22585,7 @@ Useful array-manipulation routines: given a set of separators, split an array wherever the separators appear, and provide direct access to the resulting slices. -@node GNAT AWK g-awk ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Array_Split g-arrspl ads,The GNAT Library +@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{2c8}@anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{2c9} @section @cite{GNAT.AWK} (@code{g-awk.ads}) @@ -22622,8 +22600,21 @@ Provides AWK-like parsing functions, with an easy interface for parsing one or more files containing formatted data. The file is viewed as a database where each record is a line and a field is a data element in this line. -@node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT AWK g-awk ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{2ca}@anchor{gnat_rm/the_gnat_library id42}@anchor{2cb} +@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{2ca}@anchor{gnat_rm/the_gnat_library id42}@anchor{2cb} +@section @cite{GNAT.Bind_Environment} (@code{g-binenv.ads}) + + +@geindex GNAT.Bind_Environment (g-binenv.ads) + +@geindex Bind environment + +Provides access to key=value associations captured at bind time. +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{2cc}@anchor{gnat_rm/the_gnat_library id43}@anchor{2cd} @section @cite{GNAT.Bounded_Buffers} (@code{g-boubuf.ads}) @@ -22638,7 +22629,7 @@ useful directly or as parts of the implementations of other abstractions, such as mailboxes. @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{2cc}@anchor{gnat_rm/the_gnat_library id43}@anchor{2cd} +@anchor{gnat_rm/the_gnat_library id44}@anchor{2ce}@anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{2cf} @section @cite{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads}) @@ -22651,7 +22642,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{2ce}@anchor{gnat_rm/the_gnat_library id44}@anchor{2cf} +@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{2d0}@anchor{gnat_rm/the_gnat_library id45}@anchor{2d1} @section @cite{GNAT.Bubble_Sort} (@code{g-bubsor.ads}) @@ -22666,7 +22657,7 @@ data items. Exchange and comparison procedures are provided by passing access-to-procedure values. @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id45}@anchor{2d0}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{2d1} +@anchor{gnat_rm/the_gnat_library id46}@anchor{2d2}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{2d3} @section @cite{GNAT.Bubble_Sort_A} (@code{g-busora.ads}) @@ -22682,7 +22673,7 @@ access-to-procedure values. This is an older version, retained for compatibility. Usually @cite{GNAT.Bubble_Sort} will be preferable. @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id46}@anchor{2d2}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{2d3} +@anchor{gnat_rm/the_gnat_library id47}@anchor{2d4}@anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{2d5} @section @cite{GNAT.Bubble_Sort_G} (@code{g-busorg.ads}) @@ -22698,7 +22689,7 @@ if the procedures can be inlined, at the expense of duplicating code for multiple instantiations. @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id47}@anchor{2d4}@anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{2d5} +@anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{2d6}@anchor{gnat_rm/the_gnat_library id48}@anchor{2d7} @section @cite{GNAT.Byte_Order_Mark} (@code{g-byorma.ads}) @@ -22714,7 +22705,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{2d6}@anchor{gnat_rm/the_gnat_library id48}@anchor{2d7} +@anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{2d8}@anchor{gnat_rm/the_gnat_library id49}@anchor{2d9} @section @cite{GNAT.Byte_Swapping} (@code{g-bytswa.ads}) @@ -22728,7 +22719,7 @@ General routines for swapping the bytes in 2-, 4-, and 8-byte quantities. Machine-specific implementations are available in some cases. @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{2d8}@anchor{gnat_rm/the_gnat_library id49}@anchor{2d9} +@anchor{gnat_rm/the_gnat_library id50}@anchor{2da}@anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{2db} @section @cite{GNAT.Calendar} (@code{g-calend.ads}) @@ -22742,7 +22733,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{2da}@anchor{gnat_rm/the_gnat_library id50}@anchor{2db} +@anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{2dc}@anchor{gnat_rm/the_gnat_library id51}@anchor{2dd} @section @cite{GNAT.Calendar.Time_IO} (@code{g-catiio.ads}) @@ -22753,7 +22744,7 @@ C @cite{timeval} format. @geindex GNAT.Calendar.Time_IO (g-catiio.ads) @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id51}@anchor{2dc}@anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{2dd} +@anchor{gnat_rm/the_gnat_library id52}@anchor{2de}@anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{2df} @section @cite{GNAT.CRC32} (@code{g-crc32.ads}) @@ -22770,7 +22761,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{2de}@anchor{gnat_rm/the_gnat_library id52}@anchor{2df} +@anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{2e0}@anchor{gnat_rm/the_gnat_library id53}@anchor{2e1} @section @cite{GNAT.Case_Util} (@code{g-casuti.ads}) @@ -22785,7 +22776,7 @@ without the overhead of the full casing tables in @cite{Ada.Characters.Handling}. @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id53}@anchor{2e0}@anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{2e1} +@anchor{gnat_rm/the_gnat_library id54}@anchor{2e2}@anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{2e3} @section @cite{GNAT.CGI} (@code{g-cgi.ads}) @@ -22800,7 +22791,7 @@ builds a table whose index is the key and provides some services to deal with this table. @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id54}@anchor{2e2}@anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{2e3} +@anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{2e4}@anchor{gnat_rm/the_gnat_library id55}@anchor{2e5} @section @cite{GNAT.CGI.Cookie} (@code{g-cgicoo.ads}) @@ -22815,7 +22806,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{2e4}@anchor{gnat_rm/the_gnat_library id55}@anchor{2e5} +@anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{2e6}@anchor{gnat_rm/the_gnat_library id56}@anchor{2e7} @section @cite{GNAT.CGI.Debug} (@code{g-cgideb.ads}) @@ -22827,7 +22818,7 @@ This is a package to help debugging CGI (Common Gateway Interface) programs written in Ada. @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id56}@anchor{2e6}@anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{2e7} +@anchor{gnat_rm/the_gnat_library id57}@anchor{2e8}@anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{2e9} @section @cite{GNAT.Command_Line} (@code{g-comlin.ads}) @@ -22840,7 +22831,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{2e8}@anchor{gnat_rm/the_gnat_library id57}@anchor{2e9} +@anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{2ea}@anchor{gnat_rm/the_gnat_library id58}@anchor{2eb} @section @cite{GNAT.Compiler_Version} (@code{g-comver.ads}) @@ -22858,7 +22849,7 @@ of the compiler if a consistent tool set is used to compile all units of a partition). @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id58}@anchor{2ea}@anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{2eb} +@anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{2ec}@anchor{gnat_rm/the_gnat_library id59}@anchor{2ed} @section @cite{GNAT.Ctrl_C} (@code{g-ctrl_c.ads}) @@ -22869,7 +22860,7 @@ of a partition). Provides a simple interface to handle Ctrl-C keyboard events. @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id59}@anchor{2ec}@anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{2ed} +@anchor{gnat_rm/the_gnat_library id60}@anchor{2ee}@anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{2ef} @section @cite{GNAT.Current_Exception} (@code{g-curexc.ads}) @@ -22886,7 +22877,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{2ee}@anchor{gnat_rm/the_gnat_library id60}@anchor{2ef} +@anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{2f0}@anchor{gnat_rm/the_gnat_library id61}@anchor{2f1} @section @cite{GNAT.Debug_Pools} (@code{g-debpoo.ads}) @@ -22903,7 +22894,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{2f0}@anchor{gnat_rm/the_gnat_library id61}@anchor{2f1} +@anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{2f2}@anchor{gnat_rm/the_gnat_library id62}@anchor{2f3} @section @cite{GNAT.Debug_Utilities} (@code{g-debuti.ads}) @@ -22916,7 +22907,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{2f2}@anchor{gnat_rm/the_gnat_library id62}@anchor{2f3} +@anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{2f4}@anchor{gnat_rm/the_gnat_library id63}@anchor{2f5} @section @cite{GNAT.Decode_String} (@code{g-decstr.ads}) @@ -22940,7 +22931,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{2f4}@anchor{gnat_rm/the_gnat_library id63}@anchor{2f5} +@anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{2f6}@anchor{gnat_rm/the_gnat_library id64}@anchor{2f7} @section @cite{GNAT.Decode_UTF8_String} (@code{g-deutst.ads}) @@ -22961,7 +22952,7 @@ preinstantiation for UTF-8. See next entry. A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding. @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id64}@anchor{2f6}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{2f7} +@anchor{gnat_rm/the_gnat_library id65}@anchor{2f8}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{2f9} @section @cite{GNAT.Directory_Operations} (@code{g-dirope.ads}) @@ -22974,7 +22965,7 @@ the current directory, making new directories, and scanning the files in a directory. @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id65}@anchor{2f8}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{2f9} +@anchor{gnat_rm/the_gnat_library id66}@anchor{2fa}@anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{2fb} @section @cite{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads}) @@ -22986,7 +22977,7 @@ A child unit of GNAT.Directory_Operations providing additional operations for iterating through directories. @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{2fa}@anchor{gnat_rm/the_gnat_library id66}@anchor{2fb} +@anchor{gnat_rm/the_gnat_library id67}@anchor{2fc}@anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{2fd} @section @cite{GNAT.Dynamic_HTables} (@code{g-dynhta.ads}) @@ -23004,7 +22995,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{2fc}@anchor{gnat_rm/the_gnat_library id67}@anchor{2fd} +@anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{2fe}@anchor{gnat_rm/the_gnat_library id68}@anchor{2ff} @section @cite{GNAT.Dynamic_Tables} (@code{g-dyntab.ads}) @@ -23024,7 +23015,7 @@ dynamic instances of the table, while an instantiation of @cite{GNAT.Table} creates a single instance of the table type. @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id68}@anchor{2fe}@anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{2ff} +@anchor{gnat_rm/the_gnat_library id69}@anchor{300}@anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{301} @section @cite{GNAT.Encode_String} (@code{g-encstr.ads}) @@ -23046,7 +23037,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{300}@anchor{gnat_rm/the_gnat_library id69}@anchor{301} +@anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{302}@anchor{gnat_rm/the_gnat_library id70}@anchor{303} @section @cite{GNAT.Encode_UTF8_String} (@code{g-enutst.ads}) @@ -23067,7 +23058,7 @@ Note there is a preinstantiation for UTF-8. See next entry. A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding. @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id70}@anchor{302}@anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{303} +@anchor{gnat_rm/the_gnat_library id71}@anchor{304}@anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{305} @section @cite{GNAT.Exception_Actions} (@code{g-excact.ads}) @@ -23080,7 +23071,7 @@ for specific exceptions, or when any exception is raised. This can be used for instance to force a core dump to ease debugging. @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-expect ads,GNAT Exception_Actions g-excact ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{304}@anchor{gnat_rm/the_gnat_library id71}@anchor{305} +@anchor{gnat_rm/the_gnat_library id72}@anchor{306}@anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{307} @section @cite{GNAT.Exception_Traces} (@code{g-exctra.ads}) @@ -23094,7 +23085,7 @@ Provides an interface allowing to control automatic output upon exception occurrences. @node GNAT Exceptions g-expect ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id72}@anchor{306}@anchor{gnat_rm/the_gnat_library gnat-exceptions-g-expect-ads}@anchor{307} +@anchor{gnat_rm/the_gnat_library id73}@anchor{308}@anchor{gnat_rm/the_gnat_library gnat-exceptions-g-expect-ads}@anchor{309} @section @cite{GNAT.Exceptions} (@code{g-expect.ads}) @@ -23115,7 +23106,7 @@ predefined exceptions, and for example allow raising @cite{Constraint_Error} with a message from a pure subprogram. @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-expect ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id73}@anchor{308}@anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{309} +@anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{30a}@anchor{gnat_rm/the_gnat_library id74}@anchor{30b} @section @cite{GNAT.Expect} (@code{g-expect.ads}) @@ -23131,7 +23122,7 @@ It is not implemented for cross ports, and in particular is not implemented for VxWorks or LynxOS. @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id74}@anchor{30a}@anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{30b} +@anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{30c}@anchor{gnat_rm/the_gnat_library id75}@anchor{30d} @section @cite{GNAT.Expect.TTY} (@code{g-exptty.ads}) @@ -23143,7 +23134,7 @@ ports. It is not implemented for cross ports, and in particular is not implemented for VxWorks or LynxOS. @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id75}@anchor{30c}@anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{30d} +@anchor{gnat_rm/the_gnat_library id76}@anchor{30e}@anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{30f} @section @cite{GNAT.Float_Control} (@code{g-flocon.ads}) @@ -23157,7 +23148,7 @@ library calls may cause this mode to be modified, and the Reset procedure in this package can be used to reestablish the required mode. @node GNAT Formatted_String g-forstr ads,GNAT Heap_Sort g-heasor ads,GNAT Float_Control g-flocon ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id76}@anchor{30e}@anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{30f} +@anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{310}@anchor{gnat_rm/the_gnat_library id77}@anchor{311} @section @cite{GNAT.Formatted_String} (@code{g-forstr.ads}) @@ -23172,7 +23163,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{310}@anchor{gnat_rm/the_gnat_library id77}@anchor{311} +@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{312}@anchor{gnat_rm/the_gnat_library id78}@anchor{313} @section @cite{GNAT.Heap_Sort} (@code{g-heasor.ads}) @@ -23186,7 +23177,7 @@ access-to-procedure values. The algorithm used is a modified heap sort that performs approximately N*log(N) comparisons in the worst case. @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id78}@anchor{312}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{313} +@anchor{gnat_rm/the_gnat_library id79}@anchor{314}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{315} @section @cite{GNAT.Heap_Sort_A} (@code{g-hesora.ads}) @@ -23202,7 +23193,7 @@ This differs from @cite{GNAT.Heap_Sort} in having a less convenient interface, but may be slightly more efficient. @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id79}@anchor{314}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{315} +@anchor{gnat_rm/the_gnat_library id80}@anchor{316}@anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{317} @section @cite{GNAT.Heap_Sort_G} (@code{g-hesorg.ads}) @@ -23216,7 +23207,7 @@ if the procedures can be inlined, at the expense of duplicating code for multiple instantiations. @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id80}@anchor{316}@anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{317} +@anchor{gnat_rm/the_gnat_library id81}@anchor{318}@anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{319} @section @cite{GNAT.HTable} (@code{g-htable.ads}) @@ -23229,7 +23220,7 @@ data. Provides two approaches, one a simple static approach, and the other allowing arbitrary dynamic hash tables. @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id81}@anchor{318}@anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{319} +@anchor{gnat_rm/the_gnat_library id82}@anchor{31a}@anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{31b} @section @cite{GNAT.IO} (@code{g-io.ads}) @@ -23245,7 +23236,7 @@ Standard_Input, and writing characters, strings and integers to either Standard_Output or Standard_Error. @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id82}@anchor{31a}@anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{31b} +@anchor{gnat_rm/the_gnat_library id83}@anchor{31c}@anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{31d} @section @cite{GNAT.IO_Aux} (@code{g-io_aux.ads}) @@ -23259,7 +23250,7 @@ Provides some auxiliary functions for use with Text_IO, including a test for whether a file exists, and functions for reading a line of text. @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id83}@anchor{31c}@anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{31d} +@anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{31e}@anchor{gnat_rm/the_gnat_library id84}@anchor{31f} @section @cite{GNAT.Lock_Files} (@code{g-locfil.ads}) @@ -23273,7 +23264,7 @@ Provides a general interface for using files as locks. Can be used for providing program level synchronization. @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{31e}@anchor{gnat_rm/the_gnat_library id84}@anchor{31f} +@anchor{gnat_rm/the_gnat_library id85}@anchor{320}@anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{321} @section @cite{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads}) @@ -23285,7 +23276,7 @@ The original implementation of @cite{Ada.Numerics.Discrete_Random}. Uses a modified version of the Blum-Blum-Shub generator. @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id85}@anchor{320}@anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{321} +@anchor{gnat_rm/the_gnat_library id86}@anchor{322}@anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{323} @section @cite{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads}) @@ -23297,7 +23288,7 @@ The original implementation of @cite{Ada.Numerics.Float_Random}. Uses a modified version of the Blum-Blum-Shub generator. @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id86}@anchor{322}@anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{323} +@anchor{gnat_rm/the_gnat_library id87}@anchor{324}@anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{325} @section @cite{GNAT.MD5} (@code{g-md5.ads}) @@ -23310,7 +23301,7 @@ the HMAC-MD5 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id87}@anchor{324}@anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{325} +@anchor{gnat_rm/the_gnat_library id88}@anchor{326}@anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{327} @section @cite{GNAT.Memory_Dump} (@code{g-memdum.ads}) @@ -23323,7 +23314,7 @@ standard output or standard error files. Uses GNAT.IO for actual output. @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id88}@anchor{326}@anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{327} +@anchor{gnat_rm/the_gnat_library id89}@anchor{328}@anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{329} @section @cite{GNAT.Most_Recent_Exception} (@code{g-moreex.ads}) @@ -23337,7 +23328,7 @@ various logging purposes, including duplicating functionality of some Ada 83 implementation dependent extensions. @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id89}@anchor{328}@anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{329} +@anchor{gnat_rm/the_gnat_library id90}@anchor{32a}@anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{32b} @section @cite{GNAT.OS_Lib} (@code{g-os_lib.ads}) @@ -23353,7 +23344,7 @@ including a portable spawn procedure, and access to environment variables and error return codes. @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id90}@anchor{32a}@anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{32b} +@anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{32c}@anchor{gnat_rm/the_gnat_library id91}@anchor{32d} @section @cite{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads}) @@ -23371,7 +23362,7 @@ hashcode are in the same order. These hashing functions are very convenient for use with realtime applications. @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id91}@anchor{32c}@anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{32d} +@anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{32e}@anchor{gnat_rm/the_gnat_library id92}@anchor{32f} @section @cite{GNAT.Random_Numbers} (@code{g-rannum.ads}) @@ -23383,7 +23374,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{201}@anchor{gnat_rm/the_gnat_library id92}@anchor{32e} +@anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{201}@anchor{gnat_rm/the_gnat_library id93}@anchor{330} @section @cite{GNAT.Regexp} (@code{g-regexp.ads}) @@ -23399,7 +23390,7 @@ simplest of the three pattern matching packages provided, and is particularly suitable for 'file globbing' applications. @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id93}@anchor{32f}@anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{330} +@anchor{gnat_rm/the_gnat_library id94}@anchor{331}@anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{332} @section @cite{GNAT.Registry} (@code{g-regist.ads}) @@ -23413,7 +23404,7 @@ registry API, but at a lower level of abstraction, refer to the Win32.Winreg package provided with the Win32Ada binding @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id94}@anchor{331}@anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{332} +@anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id95}@anchor{334} @section @cite{GNAT.Regpat} (@code{g-regpat.ads}) @@ -23428,7 +23419,7 @@ from the original V7 style regular expression library written in C by Henry Spencer (and binary compatible with this C library). @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id95}@anchor{333}@anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{334} +@anchor{gnat_rm/the_gnat_library id96}@anchor{335}@anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{336} @section @cite{GNAT.Rewrite_Data} (@code{g-rewdat.ads}) @@ -23442,7 +23433,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{335}@anchor{gnat_rm/the_gnat_library id96}@anchor{336} +@anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id97}@anchor{338} @section @cite{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads}) @@ -23454,7 +23445,7 @@ Provide the capability to query the high water mark of the current task's secondary stack. @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id97}@anchor{338} +@anchor{gnat_rm/the_gnat_library id98}@anchor{339}@anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{33a} @section @cite{GNAT.Semaphores} (@code{g-semaph.ads}) @@ -23465,7 +23456,7 @@ secondary stack. Provides classic counting and binary semaphores using protected types. @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id98}@anchor{339}@anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{33a} +@anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{33b}@anchor{gnat_rm/the_gnat_library id99}@anchor{33c} @section @cite{GNAT.Serial_Communications} (@code{g-sercom.ads}) @@ -23477,7 +23468,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{33b}@anchor{gnat_rm/the_gnat_library id99}@anchor{33c} +@anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{33d}@anchor{gnat_rm/the_gnat_library id100}@anchor{33e} @section @cite{GNAT.SHA1} (@code{g-sha1.ads}) @@ -23490,7 +23481,7 @@ and RFC 3174, and the HMAC-SHA1 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id100}@anchor{33d}@anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{33e} +@anchor{gnat_rm/the_gnat_library id101}@anchor{33f}@anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{340} @section @cite{GNAT.SHA224} (@code{g-sha224.ads}) @@ -23503,7 +23494,7 @@ and the HMAC-SHA224 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id101}@anchor{33f}@anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{340} +@anchor{gnat_rm/the_gnat_library id102}@anchor{341}@anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{342} @section @cite{GNAT.SHA256} (@code{g-sha256.ads}) @@ -23516,7 +23507,7 @@ and the HMAC-SHA256 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id102}@anchor{341}@anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{342} +@anchor{gnat_rm/the_gnat_library id103}@anchor{343}@anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{344} @section @cite{GNAT.SHA384} (@code{g-sha384.ads}) @@ -23529,7 +23520,7 @@ and the HMAC-SHA384 message authentication function as described in RFC 2104 and FIPS PUB 198. @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id103}@anchor{343}@anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{344} +@anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id104}@anchor{346} @section @cite{GNAT.SHA512} (@code{g-sha512.ads}) @@ -23542,7 +23533,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{345}@anchor{gnat_rm/the_gnat_library id104}@anchor{346} +@anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id105}@anchor{348} @section @cite{GNAT.Signals} (@code{g-signal.ads}) @@ -23554,7 +23545,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{347}@anchor{gnat_rm/the_gnat_library id105}@anchor{348} +@anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id106}@anchor{34a} @section @cite{GNAT.Sockets} (@code{g-socket.ads}) @@ -23569,7 +23560,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{349}@anchor{gnat_rm/the_gnat_library id106}@anchor{34a} +@anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id107}@anchor{34c} @section @cite{GNAT.Source_Info} (@code{g-souinf.ads}) @@ -23583,7 +23574,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{34b}@anchor{gnat_rm/the_gnat_library id107}@anchor{34c} +@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{34d}@anchor{gnat_rm/the_gnat_library id108}@anchor{34e} @section @cite{GNAT.Spelling_Checker} (@code{g-speche.ads}) @@ -23595,7 +23586,7 @@ Provides a function for determining whether one string is a plausible near misspelling of another string. @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{34d}@anchor{gnat_rm/the_gnat_library id108}@anchor{34e} +@anchor{gnat_rm/the_gnat_library id109}@anchor{34f}@anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{350} @section @cite{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads}) @@ -23608,7 +23599,7 @@ determining whether one string is a plausible near misspelling of another string. @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id109}@anchor{34f}@anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{350} +@anchor{gnat_rm/the_gnat_library id110}@anchor{351}@anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{352} @section @cite{GNAT.Spitbol.Patterns} (@code{g-spipat.ads}) @@ -23624,7 +23615,7 @@ the SNOBOL4 dynamic pattern construction and matching capabilities, using the efficient algorithm developed by Robert Dewar for the SPITBOL system. @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id110}@anchor{351}@anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{352} +@anchor{gnat_rm/the_gnat_library id111}@anchor{353}@anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{354} @section @cite{GNAT.Spitbol} (@code{g-spitbo.ads}) @@ -23639,7 +23630,7 @@ useful for constructing arbitrary mappings from strings in the style of the SNOBOL4 TABLE function. @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id111}@anchor{353}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{354} +@anchor{gnat_rm/the_gnat_library id112}@anchor{355}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{356} @section @cite{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads}) @@ -23654,7 +23645,7 @@ for type @cite{Standard.Boolean}, giving an implementation of sets of string values. @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id112}@anchor{355}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{356} +@anchor{gnat_rm/the_gnat_library id113}@anchor{357}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{358} @section @cite{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads}) @@ -23671,7 +23662,7 @@ for type @cite{Standard.Integer}, giving an implementation of maps from string to integer values. @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id113}@anchor{357}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{358} +@anchor{gnat_rm/the_gnat_library id114}@anchor{359}@anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{35a} @section @cite{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads}) @@ -23688,7 +23679,7 @@ a variable length string type, giving an implementation of general maps from strings to strings. @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id114}@anchor{359}@anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{35a} +@anchor{gnat_rm/the_gnat_library id115}@anchor{35b}@anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{35c} @section @cite{GNAT.SSE} (@code{g-sse.ads}) @@ -23700,7 +23691,7 @@ targets. It exposes vector component types together with a general introduction to the binding contents and use. @node GNAT SSE Vector_Types g-ssvety ads,GNAT Strings g-string ads,GNAT SSE g-sse ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id115}@anchor{35c} +@anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{35d}@anchor{gnat_rm/the_gnat_library id116}@anchor{35e} @section @cite{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads}) @@ -23709,7 +23700,7 @@ introduction to the binding contents and use. SSE vector types for use with SSE related intrinsics. @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id116}@anchor{35d}@anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{35e} +@anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{35f}@anchor{gnat_rm/the_gnat_library id117}@anchor{360} @section @cite{GNAT.Strings} (@code{g-string.ads}) @@ -23719,7 +23710,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{35f}@anchor{gnat_rm/the_gnat_library id117}@anchor{360} +@anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id118}@anchor{362} @section @cite{GNAT.String_Split} (@code{g-strspl.ads}) @@ -23733,7 +23724,7 @@ to the resulting slices. This package is instantiated from @cite{GNAT.Array_Split}. @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id118}@anchor{361}@anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{362} +@anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id119}@anchor{364} @section @cite{GNAT.Table} (@code{g-table.ads}) @@ -23753,7 +23744,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{363}@anchor{gnat_rm/the_gnat_library id119}@anchor{364} +@anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{365}@anchor{gnat_rm/the_gnat_library id120}@anchor{366} @section @cite{GNAT.Task_Lock} (@code{g-tasloc.ads}) @@ -23770,7 +23761,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{365}@anchor{gnat_rm/the_gnat_library id120}@anchor{366} +@anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id121}@anchor{368} @section @cite{GNAT.Time_Stamp} (@code{g-timsta.ads}) @@ -23785,7 +23776,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{367}@anchor{gnat_rm/the_gnat_library id121}@anchor{368} +@anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{369}@anchor{gnat_rm/the_gnat_library id122}@anchor{36a} @section @cite{GNAT.Threads} (@code{g-thread.ads}) @@ -23802,7 +23793,7 @@ further details if your program has threads that are created by a non-Ada environment which then accesses Ada code. @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id122}@anchor{369}@anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{36a} +@anchor{gnat_rm/the_gnat_library id123}@anchor{36b}@anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{36c} @section @cite{GNAT.Traceback} (@code{g-traceb.ads}) @@ -23814,7 +23805,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{36b}@anchor{gnat_rm/the_gnat_library id123}@anchor{36c} +@anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id124}@anchor{36e} @section @cite{GNAT.Traceback.Symbolic} (@code{g-trasym.ads}) @@ -23823,7 +23814,7 @@ in various debugging situations. @geindex Trace back facilities @node GNAT UTF_32 g-table ads,GNAT Wide_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id124}@anchor{36d}@anchor{gnat_rm/the_gnat_library gnat-utf-32-g-table-ads}@anchor{36e} +@anchor{gnat_rm/the_gnat_library id125}@anchor{36f}@anchor{gnat_rm/the_gnat_library gnat-utf-32-g-table-ads}@anchor{370} @section @cite{GNAT.UTF_32} (@code{g-table.ads}) @@ -23842,7 +23833,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{36f}@anchor{gnat_rm/the_gnat_library id125}@anchor{370} +@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-u3spch-ads}@anchor{371}@anchor{gnat_rm/the_gnat_library id126}@anchor{372} @section @cite{GNAT.Wide_Spelling_Checker} (@code{g-u3spch.ads}) @@ -23855,7 +23846,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{371}@anchor{gnat_rm/the_gnat_library id126}@anchor{372} +@anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id127}@anchor{374} @section @cite{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads}) @@ -23867,7 +23858,7 @@ Provides a function for determining whether one wide string is a plausible near misspelling of another wide string. @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id127}@anchor{373}@anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{374} +@anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id128}@anchor{376} @section @cite{GNAT.Wide_String_Split} (@code{g-wistsp.ads}) @@ -23881,7 +23872,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{375}@anchor{gnat_rm/the_gnat_library id128}@anchor{376} +@anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{377}@anchor{gnat_rm/the_gnat_library id129}@anchor{378} @section @cite{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads}) @@ -23893,7 +23884,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{377}@anchor{gnat_rm/the_gnat_library id129}@anchor{378} +@anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{379}@anchor{gnat_rm/the_gnat_library id130}@anchor{37a} @section @cite{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads}) @@ -23907,7 +23898,7 @@ to the resulting slices. This package is instantiated from @cite{GNAT.Array_Split}. @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id130}@anchor{379}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{37a} +@anchor{gnat_rm/the_gnat_library id131}@anchor{37b}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{37c} @section @cite{Interfaces.C.Extensions} (@code{i-cexten.ads}) @@ -23918,7 +23909,7 @@ for use with either manually or automatically generated bindings to C libraries. @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id131}@anchor{37b}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{37c} +@anchor{gnat_rm/the_gnat_library id132}@anchor{37d}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{37e} @section @cite{Interfaces.C.Streams} (@code{i-cstrea.ads}) @@ -23931,7 +23922,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{37d}@anchor{gnat_rm/the_gnat_library id132}@anchor{37e} +@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id133}@anchor{380} @section @cite{Interfaces.Packed_Decimal} (@code{i-pacdec.ads}) @@ -23946,7 +23937,7 @@ from a packed decimal format compatible with that used on IBM mainframes. @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id133}@anchor{37f}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{380} +@anchor{gnat_rm/the_gnat_library id134}@anchor{381}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{382} @section @cite{Interfaces.VxWorks} (@code{i-vxwork.ads}) @@ -23962,7 +23953,7 @@ In particular, it interfaces with the VxWorks hardware interrupt facilities. @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id134}@anchor{382} +@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{383}@anchor{gnat_rm/the_gnat_library id135}@anchor{384} @section @cite{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads}) @@ -23985,7 +23976,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{383}@anchor{gnat_rm/the_gnat_library id135}@anchor{384} +@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id136}@anchor{386} @section @cite{System.Address_Image} (@code{s-addima.ads}) @@ -24001,7 +23992,7 @@ function that gives an (implementation dependent) string which identifies an address. @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id136}@anchor{386} +@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{387}@anchor{gnat_rm/the_gnat_library id137}@anchor{388} @section @cite{System.Assertions} (@code{s-assert.ads}) @@ -24017,7 +24008,7 @@ by an run-time assertion failure, as well as the routine that is used internally to raise this assertion. @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id137}@anchor{387}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{388} +@anchor{gnat_rm/the_gnat_library id138}@anchor{389}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{38a} @section @cite{System.Atomic_Counters} (@code{s-atocou.ads}) @@ -24031,7 +24022,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{389}@anchor{gnat_rm/the_gnat_library id138}@anchor{38a} +@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{38b}@anchor{gnat_rm/the_gnat_library id139}@anchor{38c} @section @cite{System.Memory} (@code{s-memory.ads}) @@ -24049,7 +24040,7 @@ calls to this unit may be made for low level allocation uses (for example see the body of @cite{GNAT.Tables}). @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id139}@anchor{38b}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{38c} +@anchor{gnat_rm/the_gnat_library id140}@anchor{38d}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{38e} @section @cite{System.Multiprocessors} (@code{s-multip.ads}) @@ -24062,7 +24053,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{38d}@anchor{gnat_rm/the_gnat_library id140}@anchor{38e} +@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{38f}@anchor{gnat_rm/the_gnat_library id141}@anchor{390} @section @cite{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads}) @@ -24075,7 +24066,7 @@ in GNAT we also make it available in Ada 95 and Ada 2005 (where it is technically an implementation-defined addition). @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id141}@anchor{38f}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{390} +@anchor{gnat_rm/the_gnat_library id142}@anchor{391}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{392} @section @cite{System.Partition_Interface} (@code{s-parint.ads}) @@ -24088,7 +24079,7 @@ is used primarily in a distribution context when using Annex E with @cite{GLADE}. @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id142}@anchor{391}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{392} +@anchor{gnat_rm/the_gnat_library id143}@anchor{393}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{394} @section @cite{System.Pool_Global} (@code{s-pooglo.ads}) @@ -24105,7 +24096,7 @@ declared. It uses malloc/free to allocate/free and does not attempt to do any automatic reclamation. @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{393}@anchor{gnat_rm/the_gnat_library id143}@anchor{394} +@anchor{gnat_rm/the_gnat_library id144}@anchor{395}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{396} @section @cite{System.Pool_Local} (@code{s-pooloc.ads}) @@ -24122,7 +24113,7 @@ a list of allocated blocks, so that all storage allocated for the pool can be freed automatically when the pool is finalized. @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id144}@anchor{395}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{396} +@anchor{gnat_rm/the_gnat_library id145}@anchor{397}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{398} @section @cite{System.Restrictions} (@code{s-restri.ads}) @@ -24138,7 +24129,7 @@ compiler determined information on which restrictions are violated by one or more packages in the partition. @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id145}@anchor{397}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{398} +@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id146}@anchor{39a} @section @cite{System.Rident} (@code{s-rident.ads}) @@ -24154,7 +24145,7 @@ since the necessary instantiation is included in package System.Restrictions. @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library -@anchor{gnat_rm/the_gnat_library id146}@anchor{399}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{39a} +@anchor{gnat_rm/the_gnat_library id147}@anchor{39b}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{39c} @section @cite{System.Strings.Stream_Ops} (@code{s-ststop.ads}) @@ -24170,7 +24161,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{39b}@anchor{gnat_rm/the_gnat_library id147}@anchor{39c} +@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{39d}@anchor{gnat_rm/the_gnat_library id148}@anchor{39e} @section @cite{System.Unsigned_Types} (@code{s-unstyp.ads}) @@ -24183,7 +24174,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{39d}@anchor{gnat_rm/the_gnat_library id148}@anchor{39e} +@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{39f}@anchor{gnat_rm/the_gnat_library id149}@anchor{3a0} @section @cite{System.Wch_Cnv} (@code{s-wchcnv.ads}) @@ -24204,7 +24195,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{39f}@anchor{gnat_rm/the_gnat_library id149}@anchor{3a0} +@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id150}@anchor{3a2} @section @cite{System.Wch_Con} (@code{s-wchcon.ads}) @@ -24216,7 +24207,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{3a1}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{3a2} +@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}@anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{3a3}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{3a4} @chapter Interfacing to Other Languages @@ -24234,7 +24225,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{3a3}@anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{3a4} +@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{3a5}@anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{3a6} @section Interfacing to C @@ -24372,7 +24363,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{3a5}@anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{3f} +@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{3a7}@anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{3e} @section Interfacing to C++ @@ -24429,7 +24420,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{3a6}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{3a7} +@anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{3a8}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{3a9} @section Interfacing to COBOL @@ -24437,7 +24428,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{3a8}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{3a9} +@anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{3aa}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{3ab} @section Interfacing to Fortran @@ -24447,7 +24438,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{3aa}@anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{3ab} +@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{3ac}@anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{3ad} @section Interfacing to non-GNAT Ada code @@ -24471,7 +24462,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{3ac}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{3ad} +@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}@anchor{gnat_rm/specialized_needs_annexes doc}@anchor{3ae}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{3af} @chapter Specialized Needs Annexes @@ -24512,7 +24503,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{3ae}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{3af} +@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{3b0}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{3b1} @chapter Implementation of Specific Ada Features @@ -24530,7 +24521,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{11d}@anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{3b0} +@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{11a}@anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{3b2} @section Machine Code Insertions @@ -24698,7 +24689,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{3b1}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{3b2} +@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{3b3}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{3b4} @section GNAT Implementation of Tasking @@ -24713,7 +24704,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{3b3}@anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{3b4} +@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{3b5}@anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{3b6} @subsection Mapping Ada Tasks onto the Underlying Kernel Threads @@ -24781,7 +24772,7 @@ support this functionality when the parent contains more than one task. .. index:: Forking a new process @node Ensuring Compliance with the Real-Time Annex,,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking -@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{3b5}@anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{3b6} +@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{3b7}@anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{3b8} @subsection Ensuring Compliance with the Real-Time Annex @@ -24830,7 +24821,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{3b7}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{3b8} +@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{3b9}@anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{3ba} @section GNAT Implementation of Shared Passive Packages @@ -24929,7 +24920,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{3b9}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{3ba} +@anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{3bb}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{3bc} @section Code Generation for Array Aggregates @@ -24960,7 +24951,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{3bb}@anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{3bc} +@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{3bd}@anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{3be} @subsection Static constant aggregates with static bounds @@ -25007,7 +24998,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{3bd}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{3be} +@anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{3bf}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{3c0} @subsection Constant aggregates with unconstrained nominal types @@ -25022,7 +25013,7 @@ Cr_Unc : constant One_Unc := (12,24,36); @end example @node Aggregates with static bounds,Aggregates with non-static bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{3bf}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{3c0} +@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{3c1}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{3c2} @subsection Aggregates with static bounds @@ -25050,7 +25041,7 @@ end loop; @end example @node Aggregates with non-static bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-non-static-bounds}@anchor{3c1}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{3c2} +@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-non-static-bounds}@anchor{3c3}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{3c4} @subsection Aggregates with non-static bounds @@ -25061,7 +25052,7 @@ have to be applied to sub-arrays individually, if they do not have statically compatible subtypes. @node Aggregates in assignment statements,,Aggregates with non-static bounds,Code Generation for Array Aggregates -@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{3c3}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{3c4} +@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{3c5}@anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{3c6} @subsection Aggregates in assignment statements @@ -25103,7 +25094,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{3c5}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{3c6} +@anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{3c7}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{3c8} @section The Size of Discriminated Records with Default Discriminants @@ -25183,7 +25174,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{3c7}@anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{3c8} +@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{3c9}@anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{3ca} @section Strict Conformance to the Ada Reference Manual @@ -25212,7 +25203,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{3c9}@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{3ca} +@anchor{gnat_rm/implementation_of_ada_2012_features doc}@anchor{3cb}@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{3cc} @chapter Implementation of Ada 2012 Features @@ -27378,7 +27369,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{3cb}@anchor{gnat_rm/obsolescent_features doc}@anchor{3cc}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{15} +@anchor{gnat_rm/obsolescent_features id1}@anchor{3cd}@anchor{gnat_rm/obsolescent_features doc}@anchor{3ce}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{15} @chapter Obsolescent Features @@ -27397,7 +27388,7 @@ compatibility purposes. @end menu @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features -@anchor{gnat_rm/obsolescent_features id2}@anchor{3cd}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{3ce} +@anchor{gnat_rm/obsolescent_features id2}@anchor{3cf}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{3d0} @section pragma No_Run_Time @@ -27410,7 +27401,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{3cf}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{3d0} +@anchor{gnat_rm/obsolescent_features id3}@anchor{3d1}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{3d2} @section pragma Ravenscar @@ -27419,7 +27410,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{3d1}@anchor{gnat_rm/obsolescent_features id4}@anchor{3d2} +@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{3d3}@anchor{gnat_rm/obsolescent_features id4}@anchor{3d4} @section pragma Restricted_Run_Time @@ -27429,7 +27420,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{3d3}@anchor{gnat_rm/obsolescent_features id5}@anchor{3d4} +@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{3d5}@anchor{gnat_rm/obsolescent_features id5}@anchor{3d6} @section pragma Task_Info @@ -27455,7 +27446,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{3d5}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{3d6} +@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{3d7}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{3d8} @section package System.Task_Info (@code{s-tasinf.ads}) @@ -27465,7 +27456,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{3d7}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{3d8} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{16}@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{3d9}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{3da} @chapter Compatibility and Porting Guide @@ -27487,7 +27478,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{3d9}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{3da} +@anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{3db}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{3dc} @section Writing Portable Fixed-Point Declarations @@ -27609,7 +27600,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{3db}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{3dc} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{3dd}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{3de} @section Compatibility with Ada 83 @@ -27637,7 +27628,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{3dd}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{3de} +@anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{3df}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{3e0} @subsection Legal Ada 83 programs that are illegal in Ada 95 @@ -27737,7 +27728,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{3df}@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{3e0} +@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{3e1}@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{3e2} @subsection More deterministic semantics @@ -27765,7 +27756,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{3e1}@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{3e2} +@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{3e3}@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{3e4} @subsection Changed semantics @@ -27807,7 +27798,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{3e3}@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{3e4} +@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{3e5}@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{3e6} @subsection Other language compatibility issues @@ -27840,7 +27831,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{3e5}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{3e6} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{3e7}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{3e8} @section Compatibility between Ada 95 and Ada 2005 @@ -27912,7 +27903,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{3e7}@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{3e8} +@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{3e9}@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{3ea} @section Implementation-dependent characteristics @@ -27935,7 +27926,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{3e9}@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{3ea} +@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{3eb}@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{3ec} @subsection Implementation-defined pragmas @@ -27957,7 +27948,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{3eb}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{3ec} +@anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{3ed}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{3ee} @subsection Implementation-defined attributes @@ -27971,7 +27962,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{3ed}@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{3ee} +@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{3ef}@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{3f0} @subsection Libraries @@ -28000,7 +27991,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{3ef}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{3f0} +@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{3f1}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{3f2} @subsection Elaboration order @@ -28036,7 +28027,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{3f1}@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{3f2} +@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{3f3}@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{3f4} @subsection Target-specific aspects @@ -28049,10 +28040,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{3f3,,Representation Clauses}. +GNAT's approach to these issues is described in @ref{3f5,,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{3f4}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{3f5} +@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{3f6}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{3f7} @section Compatibility with Other Ada Systems @@ -28095,7 +28086,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{3f3}@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{3f6} +@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{3f5}@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{3f8} @section Representation Clauses @@ -28188,7 +28179,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{3f7}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{3f8} +@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{3f9}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{3fa} @section Compatibility with HP Ada 83 @@ -28218,7 +28209,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{3f9}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{3fa} +@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license doc}@anchor{3fb}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{3fc} @chapter GNU Free Documentation License diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 21fd59ef66e..4c9efb8d21b 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -21,7 +21,7 @@ @copying @quotation -GNAT User's Guide for Native Platforms , May 12, 2015 +GNAT User's Guide for Native Platforms , October 20, 2015 AdaCore @@ -6630,7 +6630,7 @@ If you want to generate a single Ada file and not the transitive closure, you can use instead the @emph{-fdump-ada-spec-slim} switch. You can optionally specify a parent unit, of which all generated units will -be children, using @cite{-fada-spec-parent=`@w{`}unit}. +be children, using @cite{-fada-spec-parent=}. Note that we recommend when possible to use the @emph{g++} driver to generate bindings, even for most C headers, since this will in general @@ -9130,7 +9130,7 @@ messages showing where implicit @cite{pragma Elaborate} and @cite{pragma Elaborate_All} are generated. This is useful in diagnosing elaboration circularities caused by these implicit pragmas when using the static elaboration -model. See the section in this guide on elaboration checking for +model. See See the section in this guide on elaboration checking for further details. These messages are not generated by default, and are intended only for temporary use when debugging circularity problems. @end table @@ -13601,13 +13601,11 @@ year). The compiler will generate code based on the assumption that the condition being checked is true, which can result in erroneous execution if that assumption is wrong. -The checks subject to suppression include all the checks defined by -the Ada standard, the additional implementation defined checks -@cite{Alignment_Check}, -@cite{Duplicated_Tag_Check}, @cite{Predicate_Check}, and -@cite{Validity_Check}, as well as any checks introduced using -@cite{pragma Check_Name}. Note that @cite{Atomic_Synchronization} -is not automatically suppressed by use of this option. +The checks subject to suppression include all the checks defined by the Ada +standard, the additional implementation defined checks @cite{Alignment_Check}, +@cite{Duplicated_Tag_Check}, @cite{Predicate_Check}, Container_Checks, Tampering_Check, +and @cite{Validity_Check}, as well as any checks introduced using @cite{pragma Check_Name}. Note that @cite{Atomic_Synchronization} is not automatically +suppressed by use of this option. If the code depends on certain checks being active, you can use pragma @cite{Unsuppress} either as a configuration pragma or as @@ -15425,6 +15423,14 @@ platforms. (See @ref{125,,Dynamic Stack Usage Analysis} for details.) Verbose mode. Write error messages, header, summary output to @code{stdout}. +@geindex -V (gnatbind) + +@item @code{-V@emph{key}=@emph{value}} + +Store the given association of @cite{key} to @cite{value} in the bind environment. +Values stored this way can be retrieved at run time using +@cite{GNAT.Bind_Environment}. + @geindex -w (gnatbind) @item @code{-w@emph{x}} @@ -17821,7 +17827,9 @@ Whether the project is to be installed, values are @cite{true} An array attribute to declare a set of files not part of the sources to be installed. The array discriminant is the directory where the file is to be installed. If a relative directory then Prefix (see -below) is prepended. +below) is prepended. Note also that if the same file name occurs +multiple time in the attribute list, the last one will be the one +installed. @end quotation @geindex Prefix (GNAT Project Manager) @@ -21139,7 +21147,7 @@ in an executable. @item @strong{Run_Path_Origin}: single -Value is the string that may replace the path name of the executable +Value is the the string that may replace the path name of the executable directory in the run path options. @item @@ -21256,7 +21264,7 @@ the prefix is "lib". @item @strong{Shared_Library_Suffix}: single -Value is the extension of the name of shared library files. When not +Value is the the extension of the name of shared library files. When not declared, the extension is ".so". @item @@ -21913,7 +21921,9 @@ Value is the directory used to generate the documentation of source code. An array attribute to declare a set of files not part of the sources to be installed. The array discriminant is the directory where the file is to be installed. If a relative directory then Prefix (see -below) is prepended. +below) is prepended. Note also that if the same file name occurs +multiple time in the attribute list, the last one will be the one +installed. @item @strong{Prefix}: single