# DP: updates from the 16 branch upto 20260719 (documentation).

LANG=C git diff --no-renames --src-prefix=a/src/ --dst-prefix=b/src/ \
	6afcc4f6da931eb93f3ab001a0dd9650ea71d1ea 6948a8396d8271a194c201e0ed362e15616dc1dc \
	| awk '/^diff .*\.texi/ {skip=0; print; next} /^diff / {skip=1; next} skip==0' \
        | grep -v -E '^(diff|index)'

--- a/src/gcc/ada/gnat_rm.texi
+++ b/src/gcc/ada/gnat_rm.texi
@@ -19,7 +19,7 @@
 
 @copying
 @quotation
-GNAT Reference Manual , Jan 09, 2026
+GNAT Reference Manual , May 19, 2026
 
 AdaCore
 
@@ -912,6 +912,7 @@ Curated Extensions
 * Constrained attribute for generic objects:: 
 * Static aspect on intrinsic functions:: 
 * First Controlling Parameter:: 
+* Unsigned_Base_Range aspect:: 
 * Generalized Finalization:: 
 
 Deep delta Aggregates
@@ -11300,13 +11301,15 @@ prefix) yields a static Boolean value that is True if pragma
 @geindex Finalization_Size
 
 The prefix of attribute @code{Finalization_Size} must be an object or
-a non-class-wide type. This attribute returns the size of any hidden data
+a type. This attribute returns the size of any hidden data
 reserved by the compiler to handle finalization-related actions. The type of
 the attribute is `universal_integer'.
 
 @code{Finalization_Size} yields a value of zero for a type with no controlled
 parts, an object whose type has no controlled parts, or an object of a
 class-wide type whose tag denotes a type with no controlled parts.
+For a class-wide type, @code{Finalization_Size} yields a non-zero value except
+if a No_Finalization restriction is in effect, in which case it yields zero.
 
 Note that only heap-allocated objects contain finalization data.
 
@@ -27788,7 +27791,7 @@ Ada issue AI12-061 introduces a new construct in array aggregates allowing
 component associations to be parameterized by a loop variable, for example:
 
 @example
-Array (1 .. 10) of Integer :=
+array (1 .. 10) of Integer :=
   (for I in 1 .. 10 => I ** 2);
 type Matrix is
 array
@@ -30625,7 +30628,7 @@ RM references: 3.03 (23.2/3) 8.05.01 (4.7/5) 8.05.01 (5/3)
 
 @itemize *
 
-@item
+@item 
 `AI12-0402 Master of a function call with elementary result type (2026-01-07)'
 
 This AI restricts the rule that makes the master of a function call, which
@@ -30811,6 +30814,7 @@ Features activated via @code{-gnatX} or
 * Constrained attribute for generic objects:: 
 * Static aspect on intrinsic functions:: 
 * First Controlling Parameter:: 
+* Unsigned_Base_Range aspect:: 
 * Generalized Finalization:: 
 
 @end menu
@@ -31087,9 +31091,9 @@ declare
    S : Segment := (1 .. 2 => (0, 0));
    T : Triangle := (1 .. 3 => (1 .. 2 => (0, 0)));
 begin
-   S := (S with delta (1).X | (2).Y => 12, (1).Y => 15);
+   S := (S with delta (1).X => 11, (2).Y => 12, (1).Y => 15);
 
-   pragma Assert (S (1).X = 12);
+   pragma Assert (S (1).X = 11);
    pragma Assert (S (2).Y = 12);
    pragma Assert (S (1).Y = 15);
 
@@ -31414,7 +31418,7 @@ The Ada 202x @code{Static} aspect can be specified on Intrinsic imported functio
 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,Generalized Finalization,Static aspect on intrinsic functions,Curated Extensions
+@node First Controlling Parameter,Unsigned_Base_Range aspect,Static aspect on intrinsic functions,Curated Extensions
 @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{45d}
 @subsection First Controlling Parameter
 
@@ -31514,8 +31518,34 @@ overriding a primitive or creating new one.
 The result of a function is never a controlling result.
 @end itemize
 
-@node Generalized Finalization,,First Controlling Parameter,Curated Extensions
-@anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{45e}
+@node Unsigned_Base_Range aspect,Generalized Finalization,First Controlling Parameter,Curated Extensions
+@anchor{gnat_rm/gnat_language_extensions unsigned-base-range-aspect}@anchor{45e}
+@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{45f}
 @subsection Generalized Finalization
 
 
@@ -31543,8 +31573,9 @@ procedure Finalize   (Obj : in out T);
 procedure Initialize (Obj : in out T);
 @end example
 
-The three procedures have the same profile, with a single @code{in out} parameter,
-and also have the same dynamic semantics as for controlled types:
+The three procedures must be primitive operations of @code{T} and have a single
+@code{in out} parameter. They need not be all specified by the aspect. If they
+are specified, they have the same dynamic semantics as for controlled types:
 
 @quotation
 
@@ -31586,7 +31617,7 @@ in this case.
 
 @item 
 The @code{Adjust} and @code{Finalize} procedures are automatically considered as
-having the @ref{45f,,No_Raise aspect} specified for them. In particular, the
+having the @ref{460,,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
@@ -31647,7 +31678,7 @@ end P;
 @end menu
 
 @node Finalizable tagged types,Composite types,,Generalized Finalization
-@anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{460}
+@anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{461}
 @subsubsection Finalizable tagged types
 
 
@@ -31657,7 +31688,7 @@ dispatching whenever it makes sense, i.e. when the object in question is of a
 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{461}
+@anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{462}
 @subsubsection Composite types
 
 
@@ -31667,7 +31698,7 @@ in order to call the primitives of their components. The dynamic semantics is
 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{462}
+@anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{463}
 @subsubsection Interoperability with controlled types
 
 
@@ -31677,7 +31708,7 @@ versa, but the stricter dynamic semantics, in other words that of controlled
 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{463}
+@anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6c}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{464}
 @section Experimental Language Extensions
 
 
@@ -31703,7 +31734,7 @@ Features activated via @code{-gnatX0} or
 @end menu
 
 @node Conditional when constructs,Implicit With,,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{464}
+@anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{465}
 @subsection Conditional when constructs
 
 
@@ -31772,7 +31803,7 @@ end;
 @end example
 
 @node Implicit With,Storage Model,Conditional when constructs,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{465}
+@anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{466}
 @subsection Implicit With
 
 
@@ -31789,7 +31820,7 @@ end;
 @end example
 
 @node Storage Model,Attribute Super,Implicit With,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{466}
+@anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{467}
 @subsection Storage Model
 
 
@@ -31806,7 +31837,7 @@ memory models, in particular to support interactions with GPU.
 @end menu
 
 @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
-@anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{467}
+@anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{468}
 @subsubsection Aspect Storage_Model_Type
 
 
@@ -31940,7 +31971,7 @@ end CUDA_Memory;
 @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{468}
+@anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{469}
 @subsubsection Aspect Designated_Storage_Model
 
 
@@ -32018,7 +32049,7 @@ begin
 @end example
 
 @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
-@anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{469}
+@anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{46a}
 @subsubsection Legacy Storage Pools
 
 
@@ -32069,7 +32100,7 @@ type Acc is access Integer_Array with Storage_Pool => My_Pool;
 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{46a}
+@anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{46b}
 @subsection Attribute Super
 
 
@@ -32104,7 +32135,7 @@ end;
 @end example
 
 @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{46b}
+@anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{46c}
 @subsection Simpler Accessibility Model
 
 
@@ -32135,7 +32166,7 @@ All of the refined rules are compatible with the [use of anonymous access types
 @end menu
 
 @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
-@anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46c}
+@anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46d}
 @subsubsection Stand-alone objects
 
 
@@ -32183,7 +32214,7 @@ of the RM 4.6 rule “The accessibility level of the operand type shall not be
 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{46d}
+@anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{46e}
 @subsubsection Subprogram parameters
 
 
@@ -32276,7 +32307,7 @@ end;
 @end example
 
 @node Function results,,Subprogram parameters,Simpler Accessibility Model
-@anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46e}
+@anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46f}
 @subsubsection Function results
 
 
@@ -32404,7 +32435,7 @@ end;
 @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{46f}
+@anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{470}
 @subsection Case pattern matching
 
 
@@ -32534,7 +32565,7 @@ message generated in such cases is usually “Capacity exceeded in compiling
 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{470}
+@anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{471}
 @subsection Mutably Tagged Types with Size’Class Aspect
 
 
@@ -32705,7 +32736,7 @@ parameter exists (that is, before leaving the corresponding callable construct).
 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{471}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{45f}
+@anchor{gnat_rm/gnat_language_extensions id3}@anchor{472}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{460}
 @subsection No_Raise aspect
 
 
@@ -32715,7 +32746,7 @@ be raised during the execution of the subprogram, it is caught at the end of
 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{472}
+@anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{473}
 @subsection Inference of Dependent Types in Generic Instantiations
 
 
@@ -32792,7 +32823,7 @@ package Int_Array_Operations is new Array_Operations
 @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{473}
+@anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{474}
 @subsection External_Initialization Aspect
 
 
@@ -32833,7 +32864,7 @@ The maximum size of loaded files is limited to 2@w{^31} bytes.
 @end cartouche
 
 @node Finally construct,Continue statement,External_Initialization Aspect,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{474}
+@anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{475}
 @subsection Finally construct
 
 
@@ -32842,6 +32873,9 @@ another sequence of statements is completed, whether normally or abnormally.
 
 This feature is similar to the one with the same name in other languages such as Java.
 
+Note that @code{finally} is a keyword but it is not a reserved word. This is a
+configuration that does not exist in standard Ada.
+
 @menu
 * Syntax: Syntax<2>. 
 * Legality Rules: Legality Rules<2>. 
@@ -32850,7 +32884,7 @@ This feature is similar to the one with the same name in other languages such as
 @end menu
 
 @node Syntax<2>,Legality Rules<2>,,Finally construct
-@anchor{gnat_rm/gnat_language_extensions id4}@anchor{475}
+@anchor{gnat_rm/gnat_language_extensions id4}@anchor{476}
 @subsubsection Syntax
 
 
@@ -32865,7 +32899,7 @@ handled_sequence_of_statements ::=
 @end example
 
 @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
-@anchor{gnat_rm/gnat_language_extensions id5}@anchor{476}
+@anchor{gnat_rm/gnat_language_extensions id5}@anchor{477}
 @subsubsection Legality Rules
 
 
@@ -32875,7 +32909,7 @@ to be transferred outside the finally part are forbidden.
 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{477}
+@anchor{gnat_rm/gnat_language_extensions id6}@anchor{478}
 @subsubsection Dynamic Semantics
 
 
@@ -32890,7 +32924,7 @@ execution, that is the finally block must be executed in full even if the contai
 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{478}
+@anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{479}
 @subsection Continue statement
 
 
@@ -32908,7 +32942,7 @@ Note that @code{continue} is a keyword but it is not a reserved word. This is a
 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{479}
+@anchor{gnat_rm/gnat_language_extensions destructors}@anchor{47a}
 @subsection Destructors
 
 
@@ -32962,7 +32996,7 @@ When an object of type @code{T2} is finalized, there will be first a call to
 @code{T2'Destructor}, and then a call to @code{T1'Destructor} on the object.
 
 @node Structural Generic Instantiation,,Destructors,Experimental Language Extensions
-@anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{47a}
+@anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{47b}
 @subsection Structural Generic Instantiation
 
 
@@ -32988,7 +33022,7 @@ where a name is accepted by the language.
 @end menu
 
 @node Syntax<3>,Legality Rules<3>,,Structural Generic Instantiation
-@anchor{gnat_rm/gnat_language_extensions id7}@anchor{47b}
+@anchor{gnat_rm/gnat_language_extensions id7}@anchor{47c}
 @subsubsection Syntax
 
 
@@ -33000,7 +33034,7 @@ structural_generic_instance_name ::= name generic_actual_part
 @end example
 
 @node Legality Rules<3>,Static Semantics,Syntax<3>,Structural Generic Instantiation
-@anchor{gnat_rm/gnat_language_extensions id8}@anchor{47c}
+@anchor{gnat_rm/gnat_language_extensions id8}@anchor{47d}
 @subsubsection Legality Rules
 
 
@@ -33026,7 +33060,7 @@ generic subprogram may be present in a single partition, unless
 whole-partition optimization is performed (e.g., via LTO).
 
 @node Static Semantics,,Legality Rules<3>,Structural Generic Instantiation
-@anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47d}
+@anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47e}
 @subsubsection Static Semantics
 
 
@@ -33036,7 +33070,6 @@ actual parameters. This instance is unique to a partition, except when a
 generic subprogram instantiation is automatically demoted to a local
 instantiation as described under Legality Rules.
 
-
 Example:
 
 @example
@@ -33073,11 +33106,11 @@ package Q is
 end Q;
 @end example
 
-The reason is that @code{Ada.Containers.Vectors}, @code{Positive} and @code{Q.T}
-being library-level entities, the structural instance @code{Ada.Containers.Vectors(Positive,T)} is a library unit with a dependence
+The reason is that @code{Ada.Containers.Vectors}, @code{Positive} and @code{Q.T} being
+library-level entities, the structural instance @code{Ada.Containers.Vectors(Positive,T)} is a library unit with a dependence
 on @code{Q} and, therefore, cannot be referenced from within @code{Q}. This
-restriction applies to structural instantiations of generic packages. The simple
-way out is to declare a traditional instantiation in this case:
+restriction applies to structural instantiations of generic packages. The
+simple way out is to declare a traditional instantiation in this case:
 
 @example
 with Ada.Containers.Vectors;
@@ -33133,11 +33166,11 @@ package body Q is
 end Q;
 @end example
 
-is legal: since @code{T} and @code{T_Access} are local entities of @code{Q},
-the structural instantiation of @code{Ada.Unchecked_Deallocation} is demoted
-to a local instantiation rather than producing an error. Note that the
-uniqueness guarantee no longer holds in this case and several instances of
-the generic subprogram may be present in a single partition.
+is legal: since @code{T} and @code{T_Access} are local entities of @code{Q}, the
+structural instantiation of @code{Ada.Unchecked_Deallocation} is demoted to a
+local instantiation rather than producing an error. Note that the uniqueness
+guarantee no longer holds in this case and several instances of the generic
+subprogram may be present in a single partition.
 
 The first example can be rewritten in a less verbose manner:
 
@@ -33171,7 +33204,7 @@ end;
 @end example
 
 @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
-@anchor{gnat_rm/security_hardening_features doc}@anchor{47e}@anchor{gnat_rm/security_hardening_features id1}@anchor{47f}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
+@anchor{gnat_rm/security_hardening_features doc}@anchor{47f}@anchor{gnat_rm/security_hardening_features id1}@anchor{480}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
 @chapter Security Hardening Features
 
 
@@ -33195,7 +33228,7 @@ These features are supported only by the GCC back end, not by LLVM.
 @end menu
 
 @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{480}
+@anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{481}
 @section Register Scrubbing
 
 
@@ -33231,7 +33264,7 @@ programming languages, see @cite{Using the GNU Compiler Collection (GCC)}.
 @c Stack Scrubbing:
 
 @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{481}
+@anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{482}
 @section Stack Scrubbing
 
 
@@ -33375,7 +33408,7 @@ Bar_Callable_Ptr.
 @c Hardened Conditionals:
 
 @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{482}
+@anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{483}
 @section Hardened Conditionals
 
 
@@ -33465,7 +33498,7 @@ be used with other programming languages supported by GCC.
 @c Hardened Booleans:
 
 @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{483}
+@anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{484}
 @section Hardened Booleans
 
 
@@ -33526,7 +33559,7 @@ and more details on that attribute, see @cite{Using the GNU Compiler Collection
 @c Control Flow Redundancy:
 
 @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
-@anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{484}
+@anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{485}
 @section Control Flow Redundancy
 
 
@@ -33694,7 +33727,7 @@ see @cite{Using the GNU Compiler Collection (GCC)}.  These options
 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{485}@anchor{gnat_rm/obsolescent_features id1}@anchor{486}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
+@anchor{gnat_rm/obsolescent_features doc}@anchor{486}@anchor{gnat_rm/obsolescent_features id1}@anchor{487}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
 @chapter Obsolescent Features
 
 
@@ -33714,7 +33747,7 @@ historical compatibility purposes.
 @end menu
 
 @node PolyORB,pragma No_Run_Time,,Obsolescent Features
-@anchor{gnat_rm/obsolescent_features id2}@anchor{487}@anchor{gnat_rm/obsolescent_features polyorb}@anchor{272}
+@anchor{gnat_rm/obsolescent_features id2}@anchor{488}@anchor{gnat_rm/obsolescent_features polyorb}@anchor{272}
 @section PolyORB
 
 
@@ -33723,7 +33756,7 @@ release 28. After this release, there will be no new versions of this
 product. Contact AdaCore support to get recommendations for replacements.
 
 @node pragma No_Run_Time,pragma Ravenscar,PolyORB,Obsolescent Features
-@anchor{gnat_rm/obsolescent_features id3}@anchor{488}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{489}
+@anchor{gnat_rm/obsolescent_features id3}@anchor{489}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{48a}
 @section pragma No_Run_Time
 
 
@@ -33736,7 +33769,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 id4}@anchor{48a}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{48b}
+@anchor{gnat_rm/obsolescent_features id4}@anchor{48b}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{48c}
 @section pragma Ravenscar
 
 
@@ -33745,7 +33778,7 @@ The pragma @code{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 id5}@anchor{48c}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48d}
+@anchor{gnat_rm/obsolescent_features id5}@anchor{48d}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48e}
 @section pragma Restricted_Run_Time
 
 
@@ -33755,7 +33788,7 @@ preferred since the Ada 2005 pragma @code{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 id6}@anchor{48e}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{48f}
+@anchor{gnat_rm/obsolescent_features id6}@anchor{48f}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{490}
 @section pragma Task_Info
 
 
@@ -33781,7 +33814,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{490}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{491}
+@anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{491}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{492}
 @section package System.Task_Info (@code{s-tasinf.ads})
 
 
@@ -33791,7 +33824,7 @@ to support the @code{Task_Info} pragma. The predefined Ada package
 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{492}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{493}
+@anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{494}
 @chapter Compatibility and Porting Guide
 
 
@@ -33813,7 +33846,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{494}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{495}
+@anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{495}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{496}
 @section Writing Portable Fixed-Point Declarations
 
 
@@ -33935,7 +33968,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{496}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{497}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{498}
 @section Compatibility with Ada 83
 
 
@@ -33963,7 +33996,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{498}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{499}
+@anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{49a}
 @subsection Legal Ada 83 programs that are illegal in Ada 95
 
 
@@ -34063,7 +34096,7 @@ the fix is usually simply to add the @code{(<>)} 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 id5}@anchor{49a}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{49b}
+@anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{49c}
 @subsection More deterministic semantics
 
 
@@ -34091,7 +34124,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 changed-semantics}@anchor{49c}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49d}
+@anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{49d}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49e}
 @subsection Changed semantics
 
 
@@ -34133,7 +34166,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 id7}@anchor{49e}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{49f}
+@anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{49f}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{4a0}
 @subsection Other language compatibility issues
 
 
@@ -34166,7 +34199,7 @@ include @code{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{4a0}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{4a1}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{4a1}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{4a2}
 @section Compatibility between Ada 95 and Ada 2005
 
 
@@ -34238,7 +34271,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 id9}@anchor{4a2}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a3}
+@anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{4a3}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a4}
 @section Implementation-dependent characteristics
 
 
@@ -34261,7 +34294,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 id10}@anchor{4a4}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a5}
+@anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{4a5}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a6}
 @subsection Implementation-defined pragmas
 
 
@@ -34283,7 +34316,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{4a6}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a7}
+@anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{4a7}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a8}
 @subsection Implementation-defined attributes
 
 
@@ -34297,7 +34330,7 @@ Ada 83, GNAT supplies the attributes @code{Bit}, @code{Machine_Size} and
 @code{Type_Class}.
 
 @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
-@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a8}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4a9}
+@anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a9}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4aa}
 @subsection Libraries
 
 
@@ -34326,7 +34359,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{4aa}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4ab}
+@anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{4ab}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4ac}
 @subsection Elaboration order
 
 
@@ -34362,7 +34395,7 @@ pragmas either globally (as an effect of the `-gnatE' switch) or locally
 @end itemize
 
 @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
-@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4ac}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4ad}
+@anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4ad}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4ae}
 @subsection Target-specific aspects
 
 
@@ -34375,10 +34408,10 @@ on the robustness of the original design.  Moreover, Ada 95 (and thus
 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{4ae,,Representation Clauses}.
+GNAT’s approach to these issues is described in @ref{4af,,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{4af}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4b0}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{4b0}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4b1}
 @section Compatibility with Other Ada Systems
 
 
@@ -34421,7 +34454,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 id16}@anchor{4b1}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4ae}
+@anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{4b2}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4af}
 @section Representation Clauses
 
 
@@ -34514,7 +34547,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{4b2}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b3}
+@anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{4b3}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b4}
 @section Compatibility with HP Ada 83
 
 
@@ -34544,7 +34577,7 @@ extension of package System.
 @end itemize
 
 @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
-@anchor{share/gnu_free_documentation_license doc}@anchor{4b4}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b5}
+@anchor{share/gnu_free_documentation_license doc}@anchor{4b5}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b6}
 @chapter GNU Free Documentation License
 
 
--- a/src/gcc/ada/gnat_ugn.texi
+++ b/src/gcc/ada/gnat_ugn.texi
@@ -19,7 +19,7 @@
 
 @copying
 @quotation
-GNAT User's Guide for Native Platforms , Jan 09, 2026
+GNAT User's Guide for Native Platforms , May 19, 2026
 
 AdaCore
 
@@ -16826,9 +16826,9 @@ char **gnat_argv;
 
 are declared in one of the GNAT library routines. These variables must
 be set from the actual @code{argc} and @code{argv} values passed to the
-main program. With no `n' present, @code{gnatbind}
+main program. With no @code{-n} present, @code{gnatbind}
 generates the C main program to automatically set these variables.
-If the `n' switch is used, there is no automatic way to
+If the @code{-n} switch is used, there is no automatic way to
 set these variables. If they are not set, the procedures in
 @code{Ada.Command_Line} will not be available, and any attempt to use
 them will raise @code{Constraint_Error}. If command line access is
--- a/src/gcc/doc/extend.texi
+++ b/src/gcc/doc/extend.texi
@@ -1618,13 +1618,13 @@ The preprocessor symbols @code{__SEG_FS} and @code{__SEG_GS} are
 defined when these address spaces are supported.
 @end table
 
+@node Attributes
 @anchor{Function Attributes}
 @anchor{Variable Attributes}
 @anchor{Type Attributes}
 @anchor{Label Attributes}
 @anchor{Enumerator Attributes}
 @anchor{Statement Attributes}
-@node Attributes
 @section Attributes Specific to GCC
 @cindex attributes
 @cindex declaring attributes
@@ -1807,10 +1807,10 @@ ordinary functions or C++ member functions.
 * Attribute Syntax::            Formal syntax for traditional GNU attributes.
 @end menu
 
+@node Common Attributes
 @anchor{Common Function Attributes}
 @anchor{Common Variable Attributes}
 @anchor{Common Type Attributes}
-@node Common Attributes
 @subsection Common Attributes
 
 The following GNU-specific attributes are supported on most targets in
@@ -5731,8 +5731,8 @@ The default for the attribute is controlled by @option{-fzero-call-used-regs}.
 * Xstormy16 Attributes::
 @end menu
 
-@anchor{AArch64 Function Attributes}
 @node AArch64 Attributes
+@anchor{AArch64 Function Attributes}
 @subsubsection AArch64 Attributes
 
 The following target-specific function attributes are available for the
@@ -5954,8 +5954,8 @@ architectural feature rules specified above.
 
 @end table
 
-@anchor{AMD GCN Function Attributes}
 @node AMD GCN Attributes
+@anchor{AMD GCN Function Attributes}
 @subsubsection AMD GCN Attributes
 
 These attributes are supported by the AMD GCN back end:
@@ -6047,10 +6047,10 @@ OpenACC/OpenMP).
 @end table
 @end table
 
+@node ARC Attributes
 @anchor{ARC Function Attributes}
 @anchor{ARC Type Attributes}
 @anchor{ARC Variable Attributes}
-@node ARC Attributes
 @subsubsection ARC Attributes
 
 These attributes are supported by the ARC back end:
@@ -6145,9 +6145,9 @@ without involving the additional semantic implications of
 loads and stores of data declared @code{uncached}.
 @end table
 
+@node ARM Attributes
 @anchor{ARM Function Attributes}
 @anchor{ARM Type Attributes}
-@node ARM Attributes
 @subsubsection ARM Attributes
 
 These attributes are supported for ARM targets:
@@ -6326,9 +6326,9 @@ most Symbian OS code uses @code{__declspec}.)
 
 @end table
 
+@node AVR Attributes
 @anchor{AVR Function Attributes}
 @anchor{AVR Variable Attributes}
-@node AVR Attributes
 @subsubsection AVR Attributes
 
 These attributes are supported by the AVR back end:
@@ -6671,9 +6671,9 @@ See also the @option{-mabsdata} @ref{AVR Options,command-line option}.
 
 @end table
 
+@node Blackfin Attributes
 @anchor{Blackfin Function Attributes}
 @anchor{Blackfin Variable Attributes}
-@node Blackfin Attributes
 @subsubsection Blackfin Attributes
 
 These attributes are supported by the Blackfin back end:
@@ -6789,9 +6789,9 @@ the specific section named @code{.l1.data.A}. Those with @code{l1_data_B}
 attribute are put into the specific section named @code{.l1.data.B}.
 @end table
 
+@node BPF Attributes
 @anchor{BPF Function Attributes}
 @anchor{BPF Type Attributes}
-@node BPF Attributes
 @subsubsection BPF Attributes
 
 These attributes are supported by the BPF back end:
@@ -6823,8 +6823,8 @@ of that type. The behavior is equivalent to manually
 wrapping every such access with @code{__builtin_preserve_access_index}.
 @end table
 
-@anchor{C-SKY Function Attributes}
 @node C-SKY Attributes
+@anchor{C-SKY Function Attributes}
 @subsubsection C-SKY Attributes
 
 These attributes are supported by the C-SKY back end:
@@ -6847,8 +6847,8 @@ are ignored with a warning otherwise.  @xref{C-SKY Options}.
 @end table
 
 
-@anchor{Epiphany Function Attributes}
 @node Epiphany Attributes
+@anchor{Epiphany Function Attributes}
 @subsubsection Epiphany Attributes
 
 These attributes are supported by the Epiphany back end:
@@ -6929,9 +6929,9 @@ command-line switch and @code{#pragma long_calls} settings.
 @end table
 
 
+@node H8/300 Attributes
 @anchor{H8/300 Function Attributes}
 @anchor{H8/300 Variable Attributes}
-@node H8/300 Attributes
 @subsubsection H8/300 Attributes
 
 These attributes are available for H8/300 targets:
@@ -7006,9 +7006,9 @@ on data in the tiny data section.  Note the tiny data area is limited to
 slightly under 32KB of data.
 @end table
 
+@node IA-64 Attributes
 @anchor{IA-64 Function Attributes}
 @anchor{IA-64 Variable Attributes}
-@node IA-64 Attributes
 @subsubsection IA-64 Attributes
 
 These attributes are supported on IA-64 targets:
@@ -7053,9 +7053,9 @@ independent and hence this attribute must not be used for objects
 defined by shared libraries.
 @end table
 
+@node LoongArch Attributes
 @anchor{LoongArch Function Attributes}
 @anchor{LoongArch Variable Attributes}
-@node LoongArch Attributes
 @subsubsection LoongArch Attributes
 
 The following attributes are supported by the LoongArch back end:
@@ -7383,8 +7383,8 @@ specially.  Currently the only supported values of @var{name} are
 @code{normal} and @code{extreme}.
 @end table
 
-@anchor{M32C Function Attributes}
 @node M32C Attributes
+@anchor{M32C Function Attributes}
 @subsubsection M32C Attributes
 
 These attributes are supported by the M32C back end:
@@ -7455,9 +7455,9 @@ function entry and exit sequences suitable for use in an interrupt handler
 when this attribute is present.
 @end table
 
+@node M32R/D Attributes
 @anchor{M32R/D Function Attributes}
 @anchor{M32R/D Variable Attributes}
-@node M32R/D Attributes
 @subsubsection M32R/D Attributes
 
 These attributes are supported by the M32R/D back end:
@@ -7497,8 +7497,8 @@ and may not be reachable with the @code{bl} instruction (the compiler
 generates the much slower @code{seth/add3/jl} instruction sequence).
 @end table
 
-@anchor{m68k Function Attributes}
 @node m68k Attributes
+@anchor{m68k Function Attributes}
 @subsubsection m68k Attributes
 
 These attributes are supported by the m68k back end:
@@ -7526,8 +7526,8 @@ sequences and replaces the return instruction with a @code{sleep}
 instruction.  This attribute is available only on fido.
 @end table
 
-@anchor{MicroBlaze Function Attributes}
 @node MicroBlaze Attributes
+@anchor{MicroBlaze Function Attributes}
 @subsubsection MicroBlaze Attributes
 
 These attributes are supported on MicroBlaze targets:
@@ -7572,9 +7572,9 @@ emits appropriate prologue code and generates a return from the handler
 using @code{rtid} instead of @code{rtsd}.
 @end table
 
+@node Microsoft Windows Attributes
 @anchor{Microsoft Windows Function Attributes}
 @anchor{Microsoft Windows Variable Attributes}
-@node Microsoft Windows Attributes
 @subsubsection Microsoft Windows Attributes
 
 @cindex @code{__declspec}
@@ -7733,8 +7733,8 @@ linkers work.  See @code{section} attribute for more information.
 The @code{shared} attribute is only available on Microsoft Windows@.
 @end table
 
-@anchor{MIPS Function Attributes}
 @node MIPS Attributes
+@anchor{MIPS Function Attributes}
 @subsubsection MIPS Attributes
 
 These attributes are supported by the MIPS back end:
@@ -7903,9 +7903,9 @@ The function can read the instruction stream in a pc-relative mode.
 If there is no argument supplied, the default of @code{"yes"} applies.
 @end table
 
+@node MSP430 Attributes
 @anchor{MSP430 Function Attributes}
 @anchor{MSP430 Variable Attributes}
-@node MSP430 Attributes
 @subsubsection MSP430 Attributes
 
 These attributes are supported by the MSP430 back end:
@@ -8009,8 +8009,8 @@ is used, and the @code{.lower} prefix is not added.
 
 @end table
 
-@anchor{NDS32 Function Attributes}
 @node NDS32 Attributes
+@anchor{NDS32 Function Attributes}
 @subsubsection NDS32 Attributes
 
 These attributes are supported by the NDS32 back end:
@@ -8074,9 +8074,9 @@ Provide a user-defined function to handle warm reset exception.
 @end table
 @end table
 
+@node Nvidia PTX Attributes
 @anchor{Nvidia PTX Function Attributes}
 @anchor{Nvidia PTX Variable Attributes}
-@node Nvidia PTX Attributes
 @subsubsection Nvidia PTX Attributes
 
 These attributes are supported by the Nvidia PTX back end:
@@ -8103,10 +8103,10 @@ within one thread block refer to the same instance of the variable.
 The runtime does not initialize variables in this memory space.
 @end table
 
+@node PowerPC Attributes
 @anchor{PowerPC Function Attributes}
 @anchor{PowerPC Type Attributes}
 @anchor{PowerPC Variable Attributes}
-@node PowerPC Attributes
 @subsubsection PowerPC Attributes
 
 These attributes are supported by the PowerPC back end:
@@ -8335,8 +8335,8 @@ These attributes mainly are intended to support the @code{__vector},
 @code{__pixel}, and @code{__bool} AltiVec keywords.
 @end table
 
-@anchor{RISC-V Function Attributes}
 @node RISC-V Attributes
+@anchor{RISC-V Function Attributes}
 @subsubsection RISC-V Attributes
 
 These attributes are supported by the RISC-V back end:
@@ -8449,9 +8449,9 @@ and @code{zbb} extensions and tunes it for @code{rocket}.
 
 @end table
 
+@node RL78 Attributes
 @anchor{RL78 Function Attributes}
 @anchor{RL78 Variable Attributes}
-@node RL78 Attributes
 @subsubsection RL78 Attributes
 
 These attributes are supported by the RL78 back end:
@@ -8482,8 +8482,8 @@ which can be accessed more efficiently than the default memory region.
 
 @end table
 
-@anchor{RX Function Attributes}
 @node RX Attributes
+@anchor{RX Function Attributes}
 @subsubsection RX Attributes
 
 These attributes are supported by the RX back end:
@@ -8539,8 +8539,8 @@ function (i.e.@: it retains the normal C function calling ABI).  See the
 @code{interrupt} attribute for a description of its arguments.
 @end table
 
-@anchor{S/390 Function Attributes}
 @node S/390 Attributes
+@anchor{S/390 Function Attributes}
 @subsubsection S/390 Attributes
 
 These attributes are supported on the S/390:
@@ -8609,8 +8609,8 @@ change any feature macros.  For example,
 does not undefine the @code{__VEC__} macro.
 @end table
 
-@anchor{SH Function Attributes}
 @node SH Attributes
+@anchor{SH Function Attributes}
 @subsubsection SH Attributes
 
 These attributes are supported on the SH family of processors:
@@ -8706,16 +8706,16 @@ On SH targets this attribute is similar to @code{interrupt_handler}
 but it does not save and restore all registers.
 @end table
 
-@anchor{Symbian OS Function Attributes}
 @node Symbian OS Attributes
+@anchor{Symbian OS Function Attributes}
 @subsubsection Symbian OS Attributes
 
 @xref{Microsoft Windows Attributes}, for discussion of the
 @code{dllexport} and @code{dllimport} attributes.
 
+@node V850 Attributes
 @anchor{V850 Function Attributes}
 @anchor{V850 Variable Attributes}
-@node V850 Attributes
 @subsubsection V850 Attributes
 
 The V850 back end supports these attributes:
@@ -8754,8 +8754,8 @@ Use it to explicitly place a variable in the first 32 kilobytes
 of memory.
 @end table
 
-@anchor{Visium Function Attributes}
 @node Visium Attributes
+@anchor{Visium Function Attributes}
 @subsubsection Visium Attributes
 
 These attributes are supported by the Visium back end:
@@ -8771,10 +8771,10 @@ function entry and exit sequences suitable for use in an interrupt handler
 when this attribute is present.
 @end table
 
+@node x86 Attributes
 @anchor{x86 Function Attributes}
 @anchor{x86 Type Attributes}
 @anchor{x86 Variable Attributes}
-@node x86 Attributes
 @subsubsection x86 Attributes
 
 These attributes are supported by the x86 back end:
@@ -9782,9 +9782,9 @@ see @ref{x86 Options}, for details of how structure layout is affected.
 @end table
 
 
+@node Xstormy16 Attributes
 @anchor{Xstormy16 Function Attributes}
 @anchor{Xstormy16 Variable Attributes}
-@node Xstormy16 Attributes
 @subsubsection Xstormy16 Attributes
 
 These attributes are supported by the Xstormy16 back end:
@@ -23948,6 +23948,29 @@ defined, then the @code{__builtin_set_fpscr_rn} built-in returns the FPSCR
 fields.  If not defined, the @code{__builtin_set_fpscr_rn} does not return a
 value.  If the @option{-msoft-float} option is used, the
 @code{__builtin_set_fpscr_rn} built-in will not return a value.
+@defbuiltin{bool __builtin_ppc_atomic_cas_local (@var{type} *@var{ptr}, @var{type} *@var{expected}, @var{type} *@var{desired}, bool @var{weak}, int @var{success_memorder}, int @var{failure_memorder})}
+This built-in function implements a PowerPC-specific atomic compare and
+exchange operation.  It behaves identically to the generic
+@code{__atomic_compare_exchange} built-in function, with one key difference:
+it uses an EH (Extended Hint) value of 1 in the @code{lbarx}, @code{lharx},
+@code{lwarx}, or @code{ldarx} instruction (load-and-reserve indexed).
+
+The EH bit provides a hint to the processor that the program will perform a
+subsequent store to the specified location.  This hint helps optimize lock
+contention on PowerPC systems by keeping the lock cacheline in the local
+processor longer, reducing performance penalties from cache coherence protocol
+traffic.
+
+For details on the behavior and semantics of the arguments, refer to the
+@code{__atomic_compare_exchange} documentation.
+
+The first three pointer arguments (@var{ptr}, @var{expected}, and
+@var{desired}) must point to complete types, and the size of the types they
+point to must be the same and known at compile time.  The types themselves may
+differ.  The supported type sizes are 1, 2, 4, 8, or 16 bytes.
+
+@enddefbuiltin
+
 
 @node Basic PowerPC Built-in Functions Available on ISA 2.05
 @subsubsection Basic PowerPC Built-in Functions Available on ISA 2.05
@@ -24696,6 +24719,7 @@ The PVIPR documents the following overloaded functions:
 * PowerPC AltiVec Built-in Functions Available on ISA 2.07::
 * PowerPC AltiVec Built-in Functions Available on ISA 3.0::
 * PowerPC AltiVec Built-in Functions Available on ISA 3.1::
+* PowerPC AltiVec/VSX Built-in Functions Available on Future ISA::
 @end menu
 
 @node PowerPC AltiVec Built-in Functions on ISA 2.05
@@ -26693,6 +26717,105 @@ int vec_any_le (vector signed __int128, vector signed __int128);
 int vec_any_le (vector unsigned __int128, vector unsigned __int128);
 @end smallexample
 
+@subsubheading PowerPC Elliptic Curve Cryptography Assist Built-in-Functions
+
+The following additional built-in functions may be available for the
+PowerPC family of processors, on Future ISA.
+These instructions provide hardware acceleration for Elliptic Curve
+Cryptography (ECC) operations, specifically optimized for P-256 and P-384
+elliptic curves.
+
+The ECC built-in functions are organized into five categories:
+multiply-multiply operations, scaled multiply-sum operations,
+quadword add/subtract operations, merge operations and rebase operations.
+
+@smallexample
+vector unsigned __int128
+__builtin_vsx_xxmulmul (vector unsigned long long ,
+                        vector unsigned long long ,
+                        const int);
+vector unsigned __int128
+__builtin_vsx_xxmulmulhiadd (vector unsigned __int128 ,
+                             vector unsigned long long ,
+                             vector unsigned long long ,
+                             const int ,
+                             const int ,
+                             const int);
+vector unsigned __int128
+__builtin_vsx_xxmulmulloadd (vector unsigned __int128 ,
+                             vector unsigned long long ,
+                             vector unsigned long long ,
+                             const int ,
+                             const int);
+vector unsigned __int128
+__builtin_vsx_xxssumudm (vector unsigned __int128 ,
+                         vector unsigned long long ,
+                         vector unsigned long long ,
+                         const int);
+vector unsigned __int128
+__builtin_vsx_xxssumudmc (vector unsigned __int128 ,
+                          vector unsigned long long ,
+                          vector unsigned long long ,
+                          const int);
+vector unsigned __int128
+__builtin_vsx_xxssumudmcext (vector unsigned long long ,
+                             vector unsigned long long ,
+                             vector unsigned __int128 ,
+                             const int);
+vector unsigned __int128
+__builtin_vsx_xsaddadduqm (vector unsigned __int128 ,
+                           vector unsigned __int128 ,
+                           vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsaddaddsuqm (vector unsigned __int128 ,
+                            vector unsigned __int128 ,
+                            vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsaddsubuqm (vector unsigned __int128 ,
+                           vector unsigned __int128 ,
+                           vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsaddsubsuqm (vector unsigned __int128 ,
+                            vector unsigned __int128 ,
+                            vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsmerge2t1uqm (vector unsigned __int128 ,
+                             vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsmerge2t2uqm (vector unsigned __int128 ,
+                             vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsmerge2t3uqm (vector unsigned __int128 ,
+                             vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsmerge3t1uqm (vector unsigned __int128 ,
+                             vector unsigned __int128 ,
+                             vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase2t1uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase2t2uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase2t3uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase2t4uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase3t1uqm (vector unsigned __int128 ,
+                              vector unsigned __int128 ,
+                              vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase3t2uqm (vector unsigned __int128 ,
+                              vector unsigned __int128 ,
+                              vector unsigned __int128);
+vector unsigned __int128
+__builtin_vsx_xsrebase3t3uqm (vector unsigned __int128 ,
+                              vector unsigned __int128 ,
+                              vector unsigned __int128);
+@end smallexample
 
 The following instances are extension of the existing overloaded built-ins
 @code{vec_sld}, @code{vec_sldw}, @code{vec_slo}, @code{vec_sro}, @code{vec_srl}
@@ -26729,6 +26852,76 @@ vector unsigned char);
 vector unsigned char);
 @end smallexample
 
+@node PowerPC AltiVec/VSX Built-in Functions Available on Future ISA
+@subsubsection PowerPC AltiVec/VSX Built-in Functions Available on Future ISA
+
+The following additional built-in functions are available for the
+PowerPC family of processors, starting with Future ISA.
+
+@subsubheading PowerPC Advanced Encryption Standard (AES) Acceleration Built-in Functions
+
+Future ISA of the PowerPC may add new instructions for accelerating AES
+algorithm. GCC provides support for these new instructions through the
+following built-in functions. The third argument to
+@var{__builtin_aes_encrypt_paired} and @var{__builtin_aes_decrypt_paired} must
+be a constant integer that is 0, 1 or 2. The values correspond to 128, 192 and
+256 bit AES encryption/decryption respectively. The third argument to
+@var{__builtin_galois_field_mult} must be a constant integer that is 0 or 1.
+The values correspond to gcm and xts variant respectively.
+
+@smallexample
+__vector_pair  __builtin_aes_encrypt_paired (__vector_pair, __vector_pair,
+                                             int);
+
+__vector_pair  __builtin_aes128_encrypt_paired (__vector_pair, __vector_pair);
+
+__vector_pair  __builtin_aes192_encrypt_paired (__vector_pair, __vector_pair);
+
+__vector_pair  __builtin_aes256_encrypt_paired (__vector_pair, __vector_pair);
+
+__vector_pair  __builtin_aes_decrypt_paired (__vector_pair, __vector_pair,
+                                             int);
+
+__vector_pair  __builtin_aes128_decrypt_paired (__vector_pair, __vector_pair);
+
+__vector_pair  __builtin_aes192_decrypt_paired (__vector_pair, __vector_pair);
+
+__vector_pair  __builtin_aes256_decrypt_paired (__vector_pair, __vector_pair);
+
+__vector_pair  __builtin_aes_genlastkey_paired (__vector_pair, int);
+
+__vector_pair  __builtin_aes128_genlastkey_paired (__vector_pair);
+
+__vector_pair  __builtin_aes192_genlastkey_paired (__vector_pair);
+
+__vector_pair  __builtin_aes256_genlastkey_paired (__vector_pair);
+
+vec_t __builtin_galois_field_mult (vec_t, vec_t, int);
+
+vec_t __builtin_galois_field_mult_gcm (vec_t, vec_t);
+
+vec_t __builtin_galois_field_mult_xts (vec_t, vec_t);
+@end smallexample
+
+@subsubheading PowerPC Vector Integer Multiply High Built-in Functions
+
+Future PowerPC processors may add new instructions for vector integer
+multiply high for halfword. GCC provides support for these instructions through
+the following built-in functions.
+
+@findex vec_mulh
+@smallexample
+@exdent vector signed short
+@exdent vec_mulh (vector signed short @var{a}, vector signed short @var{b});
+@exdent vector unsigned short
+@exdent vec_mulh (vector unsigned short @var{a}, vector unsigned short @var{b});
+@end smallexample
+
+For each integer value @code{i} from 0 to 7, do the following. The integer
+value in halfword element @code{i} of @var{a} is multiplied by the integer
+value in halfword element @code{i} of @var{b}. The high-order 16 bits of the
+32-bit product are placed into halfword element @code{i} of the vector returned.
+
 @node PowerPC Hardware Transactional Memory Built-in Functions
 @subsection PowerPC Hardware Transactional Memory Built-in Functions
 GCC provides two interfaces for accessing the Hardware Transactional
@@ -26965,11 +27158,19 @@ uint32_t amo_lwat_and (uint32_t *, uint32_t);
 uint32_t amo_lwat_umax (uint32_t *, uint32_t);
 uint32_t amo_lwat_umin (uint32_t *, uint32_t);
 uint32_t amo_lwat_swap (uint32_t *, uint32_t);
+uint32_t amo_lwat_cas_neq (uint32_t *, uint32_t, uint32_t);
+uint32_t amo_lwat_inc_eq (uint32_t *);
+uint32_t amo_lwat_inc_bounded (uint32_t *);
+uint32_t amo_lwat_dec_bounded (uint32_t *);
 
 int32_t amo_lwat_sadd (int32_t *, int32_t);
 int32_t amo_lwat_smax (int32_t *, int32_t);
 int32_t amo_lwat_smin (int32_t *, int32_t);
 int32_t amo_lwat_sswap (int32_t *, int32_t);
+int32_t amo_lwat_scas_neq (int32_t *, int32_t, int32_t);
+int32_t amo_lwat_sinc_eq (int32_t *);
+int32_t amo_lwat_sinc_bounded (int32_t *);
+int32_t amo_lwat_sdec_bounded (int32_t *);
 
 uint64_t amo_ldat_add (uint64_t *, uint64_t);
 uint64_t amo_ldat_xor (uint64_t *, uint64_t);
@@ -26978,11 +27179,19 @@ uint64_t amo_ldat_and (uint64_t *, uint64_t);
 uint64_t amo_ldat_umax (uint64_t *, uint64_t);
 uint64_t amo_ldat_umin (uint64_t *, uint64_t);
 uint64_t amo_ldat_swap (uint64_t *, uint64_t);
+uint64_t amo_ldat_cas_neq (uint64_t *, uint64_t, uint64_t);
+uint64_t amo_ldat_inc_eq (uint64_t *);
+uint64_t amo_ldat_inc_bounded (uint64_t *);
+uint64_t amo_ldat_dec_bounded (uint64_t *);
 
 int64_t amo_ldat_sadd (int64_t *, int64_t);
 int64_t amo_ldat_smax (int64_t *, int64_t);
 int64_t amo_ldat_smin (int64_t *, int64_t);
 int64_t amo_ldat_sswap (int64_t *, int64_t);
+int64_t amo_ldat_scas_neq (int64_t *, int64_t, int64_t);
+int64_t amo_ldat_sinc_eq (int64_t *);
+int64_t amo_ldat_sinc_bounded (int64_t *);
+int64_t amo_ldat_sdec_bounded (int64_t *);
 
 void amo_stwat_add (uint32_t *, uint32_t);
 void amo_stwat_xor (uint32_t *, uint32_t);
@@ -26990,10 +27199,12 @@ void amo_stwat_ior (uint32_t *, uint32_t);
 void amo_stwat_and (uint32_t *, uint32_t);
 void amo_stwat_umax (uint32_t *, uint32_t);
 void amo_stwat_umin (uint32_t *, uint32_t);
+void amo_stwat_twin (uint32_t *, uint32_t);
 
 void amo_stwat_sadd (int32_t *, int32_t);
 void amo_stwat_smax (int32_t *, int32_t);
 void amo_stwat_smin (int32_t *, int32_t);
+void amo_stwat_stwin (int32_t *, int32_t);
 
 void amo_stdat_add (uint64_t *, uint64_t);
 void amo_stdat_xor (uint64_t *, uint64_t);
@@ -27001,10 +27212,30 @@ void amo_stdat_ior (uint64_t *, uint64_t);
 void amo_stdat_and (uint64_t *, uint64_t);
 void amo_stdat_umax (uint64_t *, uint64_t);
 void amo_stdat_umin (uint64_t *, uint64_t);
+void amo_stdat_twin (uint64_t *, uint64_t);
 
 void amo_stdat_sadd (int64_t *, int64_t);
 void amo_stdat_smax (int64_t *, int64_t);
 void amo_stdat_smin (int64_t *, int64_t);
+void amo_stdat_stwin (int64_t *, int64_t);
+@end smallexample
+
+Future ISA of the PowerPC added new atomic memory operation (AMO) instructions.
+
+The AMO functions described in this section may be available on future PowerPC
+processors. At present, these functions exist to allow testing of new
+instructions. There is no guarantee that these instructions will actually be
+implemented.
+
+The functions supported are:
+
+@smallexample
+#include <amo.h>
+
+uint32_t amo_lwat_cas_eq  (uint32_t *, uint32_t, uint32_t);
+int32_t  amo_lwat_scas_eq (int32_t *, int32_t, int32_t);
+uint64_t amo_ldat_cas_eq  (uint64_t *, uint64_t, uint64_t);
+int64_t  amo_ldat_scas_eq (int64_t *, int64_t, int64_t);
 @end smallexample
 
 @node PowerPC Matrix-Multiply Assist Built-in Functions
@@ -29051,6 +29282,21 @@ AMD Family 1ah Zen version 5.
 
 @item znver6
 AMD Family 1ah Zen version 6.
+
+@item hygonfam18h
+HYGON Family 18h CPU.
+
+@item c86-4g-m4
+HYGON Family 18h model 4 dharma CPU.
+
+@item c86-4g-m6
+HYGON Family 18h model 6 shanghai CPU.
+
+@item c86-4g-m7
+HYGON Family 18h model 7 chengdu CPU.
+
+@item c86-4g-m8
+HYGON Family 18h model 8 suzhou CPU.
 @end table
 
 Here is an example:
--- a/src/gcc/doc/ifn.texi
+++ b/src/gcc/doc/ifn.texi
@@ -743,7 +743,7 @@ The @code{IFN_VEC_WIDEN_PLUS} set of internal functions directly map to
 the @code{vec_widen_sadd} and @code{vec_widen_uadd} instruction patterns,
 depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_PLUS_LO}
 and @code{IFN_VEC_WIDEN_PLUS_HI} work on the low and high parts of a vector,
-the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code {IFN_VEC_WIDEN_PLUS_ODD}
+the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code{IFN_VEC_WIDEN_PLUS_ODD}
 functions work on the even and odd elements of a vector.
 
 @cindex @code{IFN_VEC_WIDEN_MINUS} internal function
@@ -756,7 +756,7 @@ The @code{IFN_VEC_WIDEN_MINUS} set of internal functions directly map to the
 @code{vec_widen_ssub} and @code{vec_widen_usub} instruction patterns,
 depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_MINUS_LO}
 and @code{IFN_VEC_WIDEN_MINUS_HI} work on the low and high parts of a vector,
-the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code {IFN_VEC_WIDEN_MINUS_ODD}
+the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code{IFN_VEC_WIDEN_MINUS_ODD}
 functions work on the even and odd elements of a vector.
 
 @cindex @code{IFN_VEC_WIDEN_ABD} internal function
@@ -769,7 +769,7 @@ The @code{IFN_VEC_WIDEN_ABD} set of internal functions directly map to the
 @code{vec_widen_sabd} and @code{vec_widen_uabd} instruction patterns,
 depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_ABD_LO}
 and @code{IFN_VEC_WIDEN_ABD_HI} work on the low and high parts of a vector,
-the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code {IFN_VEC_WIDEN_ABD_ODD} functions
+the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code{IFN_VEC_WIDEN_ABD_ODD} functions
 work on the even and odd elements of a vector.
 
 @end table
@@ -1535,5 +1535,11 @@ The @code{IFN_FLOATTOBITINT} internal function is expanded by the
 The @code{IFN_BITINTTOFLOAT} internal function is expanded by the
 @code{expand_BITINTTOFLOAT} function.
 
+@cindex @code{IFN_VARYING} internal function
+@item @samp{IFN_VARYING}
+Use @code{IFN_VARYING} as a temporary placeholder for a value whose
+definition is still being built by the current pass.  The pass that creates
+it must replace it before finishing; the verifier rejects any remaining calls.
+
 @end table
 
--- a/src/gcc/doc/invoke.texi
+++ b/src/gcc/doc/invoke.texi
@@ -8319,10 +8319,10 @@ void foo (void)
   int f = 0; // No warning, f used
   int g = f = 5;
   (void) g;
-  int h = 0; // No warning, preincrement used
+  int h = 0; // No warning, preincrement result used
   int i = ++h;
   (void) i;
-  int j = 0; // No warning, postdecrement used
+  int j = 0; // No warning, postdecrement result used
   int k = j--;
   (void) k;
   int l = 0; // No warning, l used
@@ -21141,8 +21141,8 @@ problems or, in some cases, to provide workarounds for compiler bugs.
 for documentation of these internal parameters.
 @end table
 
-@anchor{Submodel Options}
 @node Target-Specific Options
+@anchor{Submodel Options}
 @section Target-Specific Options
 @cindex submodel options
 @cindex hardware-specific options
@@ -21522,7 +21522,7 @@ performance of the code.  Permissible values for this option are:
 @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
 @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace},
 @samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{armagicpu}, @samp{neoverse-n3},
-@samp{olympus}, @samp{cortex-a725}, @samp{cortex-x925},
+@samp{olympus}, @samp{rigel}, @samp{cortex-a725}, @samp{cortex-x925},
 @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
 @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
 @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
@@ -21935,8 +21935,6 @@ Enable the TIndex Exception-like Vector Extension.
 Enable the TLBI Domains Extension.
 @item gcie
 Enable the GICv5 (Generic Interrupt Controller) CPU Interface Extension.
-@item mpamv2
-Enable MPAMv2 system registers.
 @item lscp
 Enable the load acquire and store release pair extension.
 @item mops-go
@@ -31588,8 +31586,8 @@ Supported values for @var{cpu_type} are @samp{401}, @samp{403},
 @samp{e6500}, @samp{ec603e}, @samp{G3}, @samp{G4}, @samp{G5},
 @samp{titan}, @samp{power3}, @samp{power4}, @samp{power5}, @samp{power5+},
 @samp{power6}, @samp{power6x}, @samp{power7}, @samp{power8},
-@samp{power9}, @samp{power10}, @samp{power11}, @samp{powerpc}, @samp{powerpc64},
-@samp{powerpc64le}, @samp{rs64}, and @samp{native}.
+@samp{power9}, @samp{power10}, @samp{power11}, @samp{future}, @samp{powerpc},
+@samp{powerpc64}, @samp{powerpc64le}, @samp{rs64}, and @samp{native}.
 
 @option{-mcpu=powerpc}, @option{-mcpu=powerpc64}, and
 @option{-mcpu=powerpc64le} specify pure 32-bit PowerPC (either
@@ -35115,7 +35113,7 @@ MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK,
 UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16,
 PREFETCHI, AMX-COMPLEX, AVX10.1-512, AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT16,
 AVX-VNNI-INT8, CMPccXADD, SHA512, SM3, SM4, AVX10.2-512, APX_F, AMX-AVX512,
-AMX-FP8, AMX-TF32, MOVRS and AMX-MOVRS instruction set support.
+AMX-FP8, MOVRS and AMX-MOVRS instruction set support.
 
 @item bonnell
 @itemx atom
@@ -35391,6 +35389,36 @@ instruction set support.
 
 @item geode
 AMD Geode embedded processor with MMX and 3DNow!@: instruction set support.
+
+@item c86-4g-m4
+HYGON c86-4g-m4 CPU with x86-64, MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM, SSSE3,
+SSE4.1, SSE4.2, AES, PCLMUL, AVX, AVX2, BMI, BMI2, F16C, FMA, PRFCHW, FXSR, SHA,
+XSAVE, XSAVEOPT, XSAVEC, FSGSBASE, RDRND, MOVBE, MWAITX, ADX, RDSEED, CLZERO,
+CLFLUSHOPT, XSAVES, LZCNT, POPCNT instruction set support.
+
+@item c86-4g-m6
+HYGON c86-4g-m6 CPU with x86-64, MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM, SSSE3,
+SSE4.1, SSE4.2, AES, PCLMUL, AVX, AVX2, BMI, BMI2, F16C, FMA, PRFCHW, FXSR, SHA,
+XSAVE, XSAVEOPT, XSAVEC, FSGSBASE, RDRND, MOVBE, MWAITX, ADX, RDSEED, CLZERO,
+CLFLUSHOPT, XSAVES, LZCNT, POPCNT instruction set support.
+
+@item c86-4g-m7
+HYGON c86-4g-m7 CPU with x86-64, MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM, SSSE3,
+SSE4.1, SSE4.2, AES, PCLMUL, AVX, AVX2, BMI, BMI2, F16C, FMA, PRFCHW, FXSR, SHA,
+XSAVE, XSAVEOPT, XSAVEC, FSGSBASE, RDRND, MOVBE, MWAITX, ADX, RDSEED, CLZERO,
+CLFLUSHOPT, XSAVES, LZCNT, POPCNT, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD,
+AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, GFNI, AVX512VNNI, VAES,
+AVX512BITALG, AVX512VPOPCNTDQ, AVX512VP2INTERSECT, AVXVNNI, VPCLMULQDQ,
+WBNOINVD instruction set support.
+
+@item c86-4g-m8
+HYGON c86-4g-m8 CPU with x86-64, MMX, SSE, SSE2, SSE3, SSE4A, CX16, ABM, SSSE3,
+SSE4.1, SSE4.2, AES, PCLMUL, AVX, AVX2, BMI, BMI2, F16C, FMA, PRFCHW, FXSR, SHA,
+XSAVE, XSAVEOPT, XSAVEC, FSGSBASE, RDRND, MOVBE, MWAITX, ADX, RDSEED, CLZERO,
+CLFLUSHOPT, XSAVES, LZCNT, POPCNT, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD,
+AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, GFNI, AVX512VNNI, VAES,
+AVX512BITALG, AVX512VPOPCNTDQ, AVX512VP2INTERSECT, AVXVNNI, VPCLMULQDQ,
+WBNOINVD instruction set support.
 @end table
 
 @opindex mtune
--- a/src/gcc/doc/riscv-mcpu.texi
+++ b/src/gcc/doc/riscv-mcpu.texi
@@ -60,6 +60,8 @@ by particular CPU name. Permissible values for this option are:
 
 @samp{xt-c920v2},
 
+@samp{tt-ascalon-x},
+
 @samp{tt-ascalon-d8},
 
 @samp{xiangshan-nanhu},
--- a/src/gcc/doc/riscv-mtune.texi
+++ b/src/gcc/doc/riscv-mtune.texi
@@ -30,6 +30,8 @@ particular CPU name.  Permissible values for this option are:
 
 @samp{sifive-p600-series},
 
+@samp{tt-ascalon-x},
+
 @samp{tt-ascalon-d8},
 
 @samp{thead-c906},
--- a/src/gcc/doc/sourcebuild.texi
+++ b/src/gcc/doc/sourcebuild.texi
@@ -2216,6 +2216,11 @@ ARM target supports options to generate instructions from ARMv8.1-M with
 the M-Profile Vector Extension (MVE). Some multilibs may be incompatible
 with these options.
 
+@item arm_v8_1m_mve_link
+ARM target supports linking programs using the options selected by
+@code{arm_v8_1m_mve_ok}. Some multilibs may be incompatible with these
+options.
+
 @item arm_v8_1m_mve_fp_ok
 ARM target supports options to generate instructions from ARMv8.1-M with
 the Half-precision floating-point instructions (HP), Floating-point Extension
@@ -2351,6 +2356,11 @@ ARM target supporting @code{-mbranch-protection=standard}.
 @item arm_pacbti_hw
 Test system supports for executing non nop pacbti instructions.
 
+@item arm_mixed_fp
+On Arm targets, true when the target uses hardware instructions for
+single-precision floatint-point values, but software emulation for
+double-precision values.
+
 @end table
 
 @subsubsection AArch64-specific attributes
--- a/src/gcc/fortran/gfortran.texi
+++ b/src/gcc/fortran/gfortran.texi
@@ -1145,7 +1145,7 @@ variables, such as AIX, I/O is also performed as synchronous.
 
 On some systems, such as Darwin or Solaris, the POSIX thread library
 is always linked in, so asynchronous I/O is always performed. On other
-sytems, such as Linux, it is necessary to specify @option{-pthread},
+systems, such as Linux, it is necessary to specify @option{-pthread},
 @option{-lpthread} or @option{-fopenmp} during the linking step.
 
 @c ---------------------------------------------------------------------
@@ -3308,7 +3308,7 @@ Tools, @url{http://chasm-interop.sourceforge.net/}.
 @cindex prototypes
 @cindex C prototypes
 The options @option{-fc-prototypes} can be used to write out C
-declatations and function prototypes for @code{BIND(C)} entities.
+declarations and function prototypes for @code{BIND(C)} entities.
 The same can be done for writing out prototypes for external
 procedures using @option{-fc-prototypes-external},
 @pxref{Interoperability Options}.
@@ -4550,7 +4550,7 @@ void (*accessor)(void **, int32_t *, void *, void *, size_t *,
 size_t *))}
 
 @item @emph{Description}:
-Identification of access funtions across images is done using a unique hash.
+Identification of access functions across images is done using a unique hash.
 For each given hash an accessor has to be registered.  This routine is expected
 to register an accessor function pointer for the given hash in nearly constant
 time.  I.e. it is expected to add the hash and accessor to a buffer and return.
@@ -4634,7 +4634,7 @@ lookups.
 @end multitable
 
 @item @emph{Result}:
-The zero based index to access the accessor funtion in a lookup table.
+The zero based index to access the accessor function in a lookup table.
 On error, @code{-1} can be returned.
 
 @item @emph{Notes}:
--- a/src/gcc/fortran/intrinsic.texi
+++ b/src/gcc/fortran/intrinsic.texi
@@ -4127,7 +4127,7 @@ parameters as @var{A}.  The function shall return a nonallocatable scalar of
 the same type and type parameters as @var{A}.  The function shall be the same on
 all images and with regards to the arguments mathematically commutative and
 associative.  Note that @var{OPERATION} may not be an elemental function, unless
-it is an intrisic function.
+it is an intrinsic function.
 @item @var{RESULT_IMAGE} @tab (optional) a scalar integer expression; if
 present, it shall have the same value on all images and refer to an
 image of the current team.
--- a/src/gcc/fortran/invoke.texi
+++ b/src/gcc/fortran/invoke.texi
@@ -190,7 +190,7 @@ and warnings}.
 -fbounds-check -ftail-call-workaround -ftail-call-workaround=@var{n}
 -fcheck-array-temporaries
 -fcheck=<all|array-temps|bits|bounds|do|mem|pointer|recursion>
--fcoarray=<none|single|lib> -fexternal-blas -fexternal-blas64 -ff2c
+-fcoarray=<none|single|shared|lib> -fexternal-blas -fexternal-blas64 -ff2c
 -ffrontend-loop-interchange -ffrontend-optimize
 -finit-character=@var{n} -finit-integer=@var{n} -finit-local-zero
 -finit-derived -finit-logical=<true|false>
@@ -1083,7 +1083,7 @@ Warn for usage of deprecated OpenMP code.
 
 @opindex Wexternal-argument-mismatch
 @cindex warnings, argument mismatch
-@cindex argment mismatch, warnings
+@cindex argument mismatch, warnings
 @item -Wexternal-argument-mismatch
 Warn about argument mismatches for dummy external procedures.  This is
 implied by @option{-fc-prototypes-external} because generation of a
@@ -1517,7 +1517,7 @@ values for conversion on most systems are: @samp{native}, the default;
 big-endian representation for unformatted files; @samp{little-endian}, use
 little-endian representation for unformatted files.
 
-On POWER systems that suppport @option{-mabi=ieeelongdouble},
+On POWER systems that support @option{-mabi=ieeelongdouble},
 there are additional options, which can be combined with others with
 commas.  Those are
 @itemize @w{}
@@ -1793,6 +1793,9 @@ statements produces a compile-time error. (Default)
 @item @samp{single}
 Single-image mode, i.e. @code{num_images()} is always one.
 
+@item @samp{shared}
+Use shared-memory multithreading parallelization.
+
 @item @samp{lib}
 Library-based coarray parallelization; a suitable GNU Fortran coarray
 library such as @url{http://opencoarrays.org} needs to be linked.
