https://gcc.gnu.org/g:701fbd4cfbac0b52566e4c8cab02d95968cb961d

commit r16-4130-g701fbd4cfbac0b52566e4c8cab02d95968cb961d
Author: Javier Miranda <[email protected]>
Date:   Tue Sep 16 10:50:45 2025 +0000

    ada: Unsigned_Base_Range aspect (part 4)
    
    Disable this feature; more work needed.
    
    gcc/ada/ChangeLog:
    
            * aspects.adb (Get_Aspect_Id): Return No_Aspect for 
Unsigned_Base_Range
            name.
            * sem_prag.adb (Analyze_Pragma): Disable pragma Unsigned_Base_Range.
            * par-ch4.adb (Scan_Apostrophe): Disable attribute 
Unsigned_Base_Range.
            * doc/gnat_rm/gnat_language_extensions.rst: Remove documentation
            of aspect unsigned base range.
            * gnat_rm.texi: Regenerate.

Diff:
---
 gcc/ada/aspects.adb                              |   6 +
 gcc/ada/doc/gnat_rm/gnat_language_extensions.rst |  24 ----
 gcc/ada/gnat_rm.texi                             | 158 ++++++++++-------------
 gcc/ada/par-ch4.adb                              |   6 +-
 gcc/ada/sem_prag.adb                             |   6 +-
 5 files changed, 81 insertions(+), 119 deletions(-)

diff --git a/gcc/ada/aspects.adb b/gcc/ada/aspects.adb
index d1e27ce59833..44b7494b9247 100644
--- a/gcc/ada/aspects.adb
+++ b/gcc/ada/aspects.adb
@@ -280,6 +280,12 @@ package body Aspects is
 
    function Get_Aspect_Id (Name : Name_Id) return Aspect_Id is
    begin
+      --  Aspect Unsigned_Base_Range temporarily disabled
+
+      if Name = Name_Unsigned_Base_Range then
+         return No_Aspect;
+      end if;
+
       return Aspect_Id_Hash_Table.Get (Name);
    end Get_Aspect_Id;
 
diff --git a/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst 
b/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
index ed534d1d93e3..f80ea52d1a16 100644
--- a/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
+++ b/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
@@ -581,30 +581,6 @@ Restricting the position of controlling parameter offers 
several advantages:
 
 * The result of a function is never a controlling result.
 
-``Unsigned_Base_Range`` aspect
-------------------------------
-
-A new pragma/aspect, ``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:
-
-.. code-block:: ada
-
-  type Uns_64 is range 0 .. 2 ** 64 - 1
-    with Size => 64,
-         Unsigned_Base_Range => True;
-
-It ensures that arithmetic operations of type ``Uns_64`` are carried
-out using 64 bits.
-
 Generalized Finalization
 ------------------------
 
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index e9ebcfa8d29a..2f3eca5f3c78 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -911,7 +911,6 @@ Curated Extensions
 * Constrained attribute for generic objects:: 
 * Static aspect on intrinsic functions:: 
 * First Controlling Parameter:: 
-* Unsigned_Base_Range aspect:: 
 * Generalized Finalization:: 
 
 Deep delta Aggregates
@@ -30741,7 +30740,6 @@ 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
@@ -31345,7 +31343,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,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
 
@@ -31445,34 +31443,8 @@ overriding a primitive or creating new one.
 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
 
 
@@ -31543,7 +31515,7 @@ in this case.
 
 @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
@@ -31604,7 +31576,7 @@ end P;
 @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
 
 
@@ -31614,7 +31586,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{460}
+@anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{45f}
 @subsubsection Composite types
 
 
@@ -31624,7 +31596,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{461}
+@anchor{gnat_rm/gnat_language_extensions 
interoperability-with-controlled-types}@anchor{460}
 @subsubsection Interoperability with controlled types
 
 
@@ -31634,7 +31606,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{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
 
 
@@ -31660,7 +31632,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{463}
+@anchor{gnat_rm/gnat_language_extensions 
conditional-when-constructs}@anchor{462}
 @subsection Conditional when constructs
 
 
@@ -31729,7 +31701,7 @@ end;
 @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
 
 
@@ -31746,7 +31718,7 @@ end;
 @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
 
 
@@ -31763,7 +31735,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{466}
+@anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{465}
 @subsubsection Aspect Storage_Model_Type
 
 
@@ -31897,7 +31869,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{467}
+@anchor{gnat_rm/gnat_language_extensions 
aspect-designated-storage-model}@anchor{466}
 @subsubsection Aspect Designated_Storage_Model
 
 
@@ -31975,7 +31947,7 @@ begin
 @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
 
 
@@ -32026,7 +31998,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{469}
+@anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{468}
 @subsection Attribute Super
 
 
@@ -32061,7 +32033,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{46a}
+@anchor{gnat_rm/gnat_language_extensions 
simpler-accessibility-model}@anchor{469}
 @subsection Simpler Accessibility Model
 
 
@@ -32092,7 +32064,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{46b}
+@anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46a}
 @subsubsection Stand-alone objects
 
 
@@ -32140,7 +32112,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{46c}
+@anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{46b}
 @subsubsection Subprogram parameters
 
 
@@ -32233,7 +32205,7 @@ end;
 @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
 
 
@@ -32361,7 +32333,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{46e}
+@anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{46d}
 @subsection Case pattern matching
 
 
@@ -32491,7 +32463,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{46f}
+@anchor{gnat_rm/gnat_language_extensions 
mutably-tagged-types-with-size-class-aspect}@anchor{46e}
 @subsection Mutably Tagged Types with Size’Class Aspect
 
 
@@ -32662,7 +32634,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{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
 
 
@@ -32672,7 +32644,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{471}
+@anchor{gnat_rm/gnat_language_extensions 
inference-of-dependent-types-in-generic-instantiations}@anchor{470}
 @subsection Inference of Dependent Types in Generic Instantiations
 
 
@@ -32749,7 +32721,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{472}
+@anchor{gnat_rm/gnat_language_extensions 
external-initialization-aspect}@anchor{471}
 @subsection External_Initialization Aspect
 
 
@@ -32790,7 +32762,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{473}
+@anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{472}
 @subsection Finally construct
 
 
@@ -32807,7 +32779,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{474}
+@anchor{gnat_rm/gnat_language_extensions id4}@anchor{473}
 @subsubsection Syntax
 
 
@@ -32822,7 +32794,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{475}
+@anchor{gnat_rm/gnat_language_extensions id5}@anchor{474}
 @subsubsection Legality Rules
 
 
@@ -32832,7 +32804,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{476}
+@anchor{gnat_rm/gnat_language_extensions id6}@anchor{475}
 @subsubsection Dynamic Semantics
 
 
@@ -32847,7 +32819,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{477}
+@anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{476}
 @subsection Continue statement
 
 
@@ -32865,7 +32837,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{478}
+@anchor{gnat_rm/gnat_language_extensions destructors}@anchor{477}
 @subsection Destructors
 
 
@@ -32935,7 +32907,7 @@ imposing that rule on outside types that derive from 
the private view of the
 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
 
 
@@ -32961,7 +32933,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{47a}
+@anchor{gnat_rm/gnat_language_extensions id7}@anchor{479}
 @subsubsection Syntax
 
 
@@ -32973,7 +32945,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{47b}
+@anchor{gnat_rm/gnat_language_extensions id8}@anchor{47a}
 @subsubsection Legality Rules
 
 
@@ -32992,7 +32964,7 @@ unit if the structural instance is also a library unit 
and has a semantic
 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
 
 
@@ -33104,7 +33076,7 @@ end;
 @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
 
 
@@ -33128,7 +33100,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{47f}
+@anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{47e}
 @section Register Scrubbing
 
 
@@ -33164,7 +33136,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{480}
+@anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{47f}
 @section Stack Scrubbing
 
 
@@ -33308,7 +33280,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{481}
+@anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{480}
 @section Hardened Conditionals
 
 
@@ -33398,7 +33370,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{482}
+@anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{481}
 @section Hardened Booleans
 
 
@@ -33459,7 +33431,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{483}
+@anchor{gnat_rm/security_hardening_features 
control-flow-redundancy}@anchor{482}
 @section Control Flow Redundancy
 
 
@@ -33627,7 +33599,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{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
 
 
@@ -33646,7 +33618,7 @@ compatibility purposes.
 @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
 
 
@@ -33659,7 +33631,7 @@ preferred usage is to use an appropriately configured 
run-time that
 includes just those features that are to be made accessible.
 
 @node pragma Ravenscar,pragma Restricted_Run_Time,pragma 
No_Run_Time,Obsolescent Features
-@anchor{gnat_rm/obsolescent_features 
id3}@anchor{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
 
 
@@ -33668,7 +33640,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 
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
 
 
@@ -33678,7 +33650,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 
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
 
 
@@ -33704,7 +33676,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{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})
 
 
@@ -33714,7 +33686,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{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
 
 
@@ -33736,7 +33708,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{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
 
 
@@ -33858,7 +33830,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{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
 
 
@@ -33886,7 +33858,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{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
 
 
@@ -33986,7 +33958,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{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
 
 
@@ -34014,7 +33986,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{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
 
 
@@ -34056,7 +34028,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{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
 
 
@@ -34089,7 +34061,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{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
 
 
@@ -34161,7 +34133,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{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
 
 
@@ -34184,7 +34156,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{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
 
 
@@ -34206,7 +34178,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{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
 
 
@@ -34220,7 +34192,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{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
 
 
@@ -34249,7 +34221,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{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
 
 
@@ -34285,7 +34257,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{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
 
 
@@ -34298,10 +34270,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{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
 
 
@@ -34344,7 +34316,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{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
 
 
@@ -34437,7 +34409,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{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
 
 
@@ -34467,7 +34439,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{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
 
 
diff --git a/gcc/ada/par-ch4.adb b/gcc/ada/par-ch4.adb
index 351007787f15..f8ae9970c88e 100644
--- a/gcc/ada/par-ch4.adb
+++ b/gcc/ada/par-ch4.adb
@@ -482,7 +482,11 @@ package body Ch4 is
          elsif Token = Tok_Identifier then
             Attr_Name := Token_Name;
 
-            if not Is_Attribute_Name (Attr_Name) then
+            --  Attribute Unsigned_Base_Range temporarily disabled
+
+            if not Is_Attribute_Name (Attr_Name)
+              or else Attr_Name = Name_Unsigned_Base_Range
+            then
                if Apostrophe_Should_Be_Semicolon then
                   Expr_Form := EF_Name;
                   return Name_Node;
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index f75f1f7eb4d1..1e115aae0195 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -12684,7 +12684,11 @@ package body Sem_Prag is
 
       --  Deal with unrecognized pragma
 
-      if not Is_Pragma_Name (Pname) then
+      --  Pragma Unsigned_Base_Range temporarily disabled
+
+      if not Is_Pragma_Name (Pname)
+        or else Pname = Name_Unsigned_Base_Range
+      then
          declare
             Msg_Issued : Boolean := False;
          begin

Reply via email to