* Constrained attribute for generic objects::
* Static aspect on intrinsic functions::
* First Controlling Parameter::
-* Unsigned_Base_Range aspect::
* Generalized Finalization::
Deep delta Aggregates
* Constrained attribute for generic objects::
* Static aspect on intrinsic functions::
* First Controlling Parameter::
-* Unsigned_Base_Range aspect::
* Generalized Finalization::
@end menu
and the compiler will evaluate some of these intrinsics statically, in
particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
-@node First Controlling Parameter,Unsigned_Base_Range aspect,Static aspect on intrinsic functions,Curated Extensions
+@node First Controlling Parameter,Generalized Finalization,Static aspect on intrinsic functions,Curated Extensions
@anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{45b}
@subsection First Controlling Parameter
The result of a function is never a controlling result.
@end itemize
-@node Unsigned_Base_Range aspect,Generalized Finalization,First Controlling Parameter,Curated Extensions
-@anchor{gnat_rm/gnat_language_extensions unsigned-base-range-aspect}@anchor{45c}
-@subsection @code{Unsigned_Base_Range} aspect
-
-
-A new pragma/aspect, @code{Unsigned_Base_Range}, is introduced to explicitly
-enforce the use of an unsigned base type for signed integer types.
-RM-3.5.4(9) mandates a symmetric base range for signed integer types. This
-requirement often requires the use of larger data types for arithmetic
-operations, potentially introducing undesirable run-time overhead and
-performance penalties, particularly in embedded systems. For instance,
-on a 64-bit architecture, a 64-bit multiplication can be performed with
-a single hardware instruction, whereas a 128-bit multiplication requires
-multiple instructions and intermediate steps.
-
-Here is an example of this feature:
-
-@example
-type Uns_64 is range 0 .. 2 ** 64 - 1
- with Size => 64,
- Unsigned_Base_Range => True;
-@end example
-
-It ensures that arithmetic operations of type @code{Uns_64} are carried
-out using 64 bits.
-
-@node Generalized Finalization,,Unsigned_Base_Range aspect,Curated Extensions
-@anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{45d}
+@node Generalized Finalization,,First Controlling Parameter,Curated Extensions
+@anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{45c}
@subsection Generalized Finalization
@item
The @code{Adjust} and @code{Finalize} procedures are automatically considered as
-having the @ref{45e,,No_Raise aspect} specified for them. In particular, the
+having the @ref{45d,,No_Raise aspect} specified for them. In particular, the
compiler has permission to enforce none of the guarantees specified by the
RM 7.6.1 (14/1) and subsequent subclauses.
@end itemize
@end menu
@node Finalizable tagged types,Composite types,,Generalized Finalization
-@anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{45f}
+@anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{45e}
@subsubsection Finalizable tagged types
class-wide type and the class includes at least one finalizable tagged type.
@node Composite types,Interoperability with controlled types,Finalizable tagged types,Generalized Finalization
-@anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{460}
+@anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{45f}
@subsubsection Composite types
the same as for controlled components of composite types.
@node Interoperability with controlled types,,Composite types,Generalized Finalization
-@anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{461}
+@anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{460}
@subsubsection Interoperability with controlled types
types, is applied in this case.
@node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
-@anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6c}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{462}
+@anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6c}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{461}
@section Experimental Language Extensions
@end menu
@node Conditional when constructs,Implicit With,,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{463}
+@anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{462}
@subsection Conditional when constructs
@end example
@node Implicit With,Storage Model,Conditional when constructs,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{464}
+@anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{463}
@subsection Implicit With
@end example
@node Storage Model,Attribute Super,Implicit With,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{465}
+@anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{464}
@subsection Storage Model
@end menu
@node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
-@anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{466}
+@anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{465}
@subsubsection Aspect Storage_Model_Type
@end example
@node Aspect Designated_Storage_Model,Legacy Storage Pools,Aspect Storage_Model_Type,Storage Model
-@anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{467}
+@anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{466}
@subsubsection Aspect Designated_Storage_Model
@end example
@node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
-@anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{468}
+@anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{467}
@subsubsection Legacy Storage Pools
can still be accepted as a shortcut for the new syntax.
@node Attribute Super,Simpler Accessibility Model,Storage Model,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{469}
+@anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{468}
@subsection Attribute Super
@end example
@node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{46a}
+@anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{469}
@subsection Simpler Accessibility Model
@end menu
@node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
-@anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46b}
+@anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46a}
@subsubsection Stand-alone objects
statically deeper than that of the target type …”.
@node Subprogram parameters,Function results,Stand-alone objects,Simpler Accessibility Model
-@anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{46c}
+@anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{46b}
@subsubsection Subprogram parameters
@end example
@node Function results,,Subprogram parameters,Simpler Accessibility Model
-@anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46d}
+@anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46c}
@subsubsection Function results
@end example
@node Case pattern matching,Mutably Tagged Types with Size’Class Aspect,Simpler Accessibility Model,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{46e}
+@anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{46d}
@subsection Case pattern matching
case statement with composite selector type”.
@node Mutably Tagged Types with Size’Class Aspect,No_Raise aspect,Case pattern matching,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{46f}
+@anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{46e}
@subsection Mutably Tagged Types with Size’Class Aspect
This is analogous to the RM 6.4.1(18) rule about discriminated parameters.
@node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions id3}@anchor{470}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{45e}
+@anchor{gnat_rm/gnat_language_extensions id3}@anchor{46f}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{45d}
@subsection No_Raise aspect
this execution and @code{Program_Error} is propagated to the caller.
@node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{471}
+@anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{470}
@subsection Inference of Dependent Types in Generic Instantiations
@end example
@node External_Initialization Aspect,Finally construct,Inference of Dependent Types in Generic Instantiations,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{472}
+@anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{471}
@subsection External_Initialization Aspect
@end cartouche
@node Finally construct,Continue statement,External_Initialization Aspect,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{473}
+@anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{472}
@subsection Finally construct
@end menu
@node Syntax<2>,Legality Rules<2>,,Finally construct
-@anchor{gnat_rm/gnat_language_extensions id4}@anchor{474}
+@anchor{gnat_rm/gnat_language_extensions id4}@anchor{473}
@subsubsection Syntax
@end example
@node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
-@anchor{gnat_rm/gnat_language_extensions id5}@anchor{475}
+@anchor{gnat_rm/gnat_language_extensions id5}@anchor{474}
@subsubsection Legality Rules
Goto & exit where the target is outside of the finally’s @code{sequence_of_statements} are forbidden
@node Dynamic Semantics<2>,,Legality Rules<2>,Finally construct
-@anchor{gnat_rm/gnat_language_extensions id6}@anchor{476}
+@anchor{gnat_rm/gnat_language_extensions id6}@anchor{475}
@subsubsection Dynamic Semantics
aborted, or if the control is transferred out of the block.
@node Continue statement,Destructors,Finally construct,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{477}
+@anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{476}
@subsection Continue statement
configuration that does not exist in standard Ada.
@node Destructors,Structural Generic Instantiation,Continue statement,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions destructors}@anchor{478}
+@anchor{gnat_rm/gnat_language_extensions destructors}@anchor{477}
@subsection Destructors
type.
@node Structural Generic Instantiation,,Destructors,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{479}
+@anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{478}
@subsection Structural Generic Instantiation
@end menu
@node Syntax<3>,Legality Rules<3>,,Structural Generic Instantiation
-@anchor{gnat_rm/gnat_language_extensions id7}@anchor{47a}
+@anchor{gnat_rm/gnat_language_extensions id7}@anchor{479}
@subsubsection Syntax
@end example
@node Legality Rules<3>,Static Semantics,Syntax<3>,Structural Generic Instantiation
-@anchor{gnat_rm/gnat_language_extensions id8}@anchor{47b}
+@anchor{gnat_rm/gnat_language_extensions id8}@anchor{47a}
@subsubsection Legality Rules
dependence on the former.
@node Static Semantics,,Legality Rules<3>,Structural Generic Instantiation
-@anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47c}
+@anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47b}
@subsubsection Static Semantics
@end example
@node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
-@anchor{gnat_rm/security_hardening_features doc}@anchor{47d}@anchor{gnat_rm/security_hardening_features id1}@anchor{47e}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
+@anchor{gnat_rm/security_hardening_features doc}@anchor{47c}@anchor{gnat_rm/security_hardening_features id1}@anchor{47d}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
@chapter Security Hardening Features
@end menu
@node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{47f}
+@anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{47e}
@section Register Scrubbing
@c Stack Scrubbing:
@node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{480}
+@anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{47f}
@section Stack Scrubbing
@c Hardened Conditionals:
@node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{481}
+@anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{480}
@section Hardened Conditionals
@c Hardened Booleans:
@node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{482}
+@anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{481}
@section Hardened Booleans
@c Control Flow Redundancy:
@node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{483}
+@anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{482}
@section Control Flow Redundancy
can be used with other programming languages supported by GCC.
@node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
-@anchor{gnat_rm/obsolescent_features doc}@anchor{484}@anchor{gnat_rm/obsolescent_features id1}@anchor{485}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
+@anchor{gnat_rm/obsolescent_features doc}@anchor{483}@anchor{gnat_rm/obsolescent_features id1}@anchor{484}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
@chapter Obsolescent Features
@end menu
@node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
-@anchor{gnat_rm/obsolescent_features id2}@anchor{486}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{487}
+@anchor{gnat_rm/obsolescent_features id2}@anchor{485}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{486}
@section pragma No_Run_Time
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{488}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{489}
+@anchor{gnat_rm/obsolescent_features id3}@anchor{487}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{488}
@section pragma Ravenscar
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 id4}@anchor{48a}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48b}
+@anchor{gnat_rm/obsolescent_features id4}@anchor{489}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48a}
@section pragma Restricted_Run_Time
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 id5}@anchor{48c}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{48d}
+@anchor{gnat_rm/obsolescent_features id5}@anchor{48b}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{48c}
@section pragma Task_Info
library.
@node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
-@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{48e}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{48f}
+@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{48d}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{48e}
@section package System.Task_Info (@code{s-tasinf.ads})
standard replacement for GNAT’s @code{Task_Info} functionality.
@node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
-@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{490}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{491}
+@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{48f}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{490}
@chapter Compatibility and Porting Guide
@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{492}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{493}
+@anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{491}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{492}
@section Writing Portable Fixed-Point Declarations
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{494}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{495}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{494}
@section Compatibility with Ada 83
@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{496}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{497}
+@anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{495}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{496}
@subsection Legal Ada 83 programs that are illegal in Ada 95
@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 id5}@anchor{498}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{499}
+@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{498}
@subsection More deterministic semantics
@end itemize
@node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
-@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{49a}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49b}
+@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49a}
@subsection Changed semantics
@end itemize
@node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
-@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{49c}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{49d}
+@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{49c}
@subsection Other language compatibility issues
@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{49e}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{49f}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{49d}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{49e}
@section Compatibility between Ada 95 and Ada 2005
@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 id9}@anchor{4a0}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a1}
+@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{49f}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a0}
@section Implementation-dependent characteristics
@end menu
@node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
-@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{4a2}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a3}
+@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{4a1}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a2}
@subsection Implementation-defined pragmas
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{4a4}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a5}
+@anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{4a3}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a4}
@subsection Implementation-defined attributes
@code{Type_Class}.
@node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
-@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a6}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4a7}
+@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a5}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4a6}
@subsection Libraries
@end itemize
@node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
-@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{4a8}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4a9}
+@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{4a7}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4a8}
@subsection Elaboration order
@end itemize
@node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
-@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4aa}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4ab}
+@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4a9}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4aa}
@subsection Target-specific aspects
Ada 2005, Ada 2012, and Ada 2022) 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{4ac,,Representation Clauses}.
+GNAT’s approach to these issues is described in @ref{4ab,,Representation Clauses}.
@node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
-@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{4ad}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4ae}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{4ac}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4ad}
@section Compatibility with Other Ada Systems
@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 id16}@anchor{4af}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4ac}
+@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{4ae}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4ab}
@section Representation Clauses
@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{4b0}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b1}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{4af}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b0}
@section Compatibility with HP Ada 83
@end itemize
@node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
-@anchor{share/gnu_free_documentation_license doc}@anchor{4b2}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b3}
+@anchor{share/gnu_free_documentation_license doc}@anchor{4b1}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b2}
@chapter GNU Free Documentation License