targparm.ads, [...] (Targparm_Tags): Add PAS value corresponding to the Preallocated_...
authorJose Ruiz <ruiz@act-europe.fr>
Mon, 4 Oct 2004 14:51:17 +0000 (16:51 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 4 Oct 2004 14:51:17 +0000 (16:51 +0200)
2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>

* targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
corresponding to the Preallocated_Stacks flags in System.
(Get_Target_Parameters): Including the processing for
Preallocated_Stacks.

* system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
used to signal whether the compiler creates the required stacks and
descriptors for the different tasks (when True) or it is done by the
underlying operating system at run time (when False).
It is initially set to False in all targets.

* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
if it is supported by the target.
(Make_Task_Create_Call): Pass the stack address if it has been
previously created. Otherwise pass a Null_Address.

* snames.adb: Add _stack.

* snames.ads: Add Name_uStack. Required to allow the expander to
statically allocated task stacks.

* s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
Stack_Address argument.
Check that its value is equal to Null_Address because this target does
not support the static stack allocation.

From-SVN: r88488

38 files changed:
gcc/ada/ChangeLog
gcc/ada/exp_ch9.adb
gcc/ada/s-tarest.adb
gcc/ada/s-tarest.ads
gcc/ada/snames.adb
gcc/ada/snames.ads
gcc/ada/system-aix.ads
gcc/ada/system-darwin-ppc.ads
gcc/ada/system-freebsd-x86.ads
gcc/ada/system-hpux.ads
gcc/ada/system-interix.ads
gcc/ada/system-irix-n32.ads
gcc/ada/system-irix-o32.ads
gcc/ada/system-linux-ia64.ads
gcc/ada/system-linux-x86.ads
gcc/ada/system-linux-x86_64.ads
gcc/ada/system-lynxos-ppc.ads
gcc/ada/system-lynxos-x86.ads
gcc/ada/system-mingw.ads
gcc/ada/system-os2.ads
gcc/ada/system-solaris-sparc.ads
gcc/ada/system-solaris-sparcv9.ads
gcc/ada/system-solaris-x86.ads
gcc/ada/system-tru64.ads
gcc/ada/system-unixware.ads
gcc/ada/system-vms-zcx.ads
gcc/ada/system-vms.ads
gcc/ada/system-vms_64.ads
gcc/ada/system-vxworks-alpha.ads
gcc/ada/system-vxworks-m68k.ads
gcc/ada/system-vxworks-mips.ads
gcc/ada/system-vxworks-ppc.ads
gcc/ada/system-vxworks-sparcv9.ads
gcc/ada/system-vxworks-x86.ads
gcc/ada/system-vxworks-xscale.ads
gcc/ada/system.ads
gcc/ada/targparm.adb
gcc/ada/targparm.ads

index d54f9d13baa11c9c2fb466c05967a1d105f8d277..f34a3a4b672060a74a20fcb3ec24b96c377af4f0 100644 (file)
@@ -1,3 +1,41 @@
+2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
+
+       * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
+       corresponding to the Preallocated_Stacks flags in System.
+       (Get_Target_Parameters): Including the processing for
+       Preallocated_Stacks.
+
+       * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads, 
+       system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads, 
+       system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, 
+       system-linux-x86_64.ads, system-tru64.ads, system-aix.ads, 
+       system-vxworks-sparcv9.ads, system-vxworks-xscale.ads, 
+       system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, 
+       system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
+       system-vxworks-mips.ads, system-os2.ads, system-interix.ads, 
+       system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
+       system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
+       system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
+       used to signal whether the compiler creates the required stacks and
+       descriptors for the different tasks (when True) or it is done by the
+       underlying operating system at run time (when False).
+       It is initially set to False in all targets.
+
+       * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
+       if it is supported by the target.
+       (Make_Task_Create_Call): Pass the stack address if it has been
+       previously created. Otherwise pass a Null_Address.
+
+       * snames.adb: Add _stack.
+
+       * snames.ads: Add Name_uStack. Required to allow the expander to
+       statically allocated task stacks.
+
+       * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
+       Stack_Address argument.
+       Check that its value is equal to Null_Address because this target does
+       not support the static stack allocation.
+
 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
 
        * usage.adb: Change "pragma inline" to "pragma Inline" in information
index 1b07efaf321e36f9d582e0e30ab630b2b99bc30b..133bf555b9ddd367698392c347230a5f4b26586d 100644 (file)
@@ -55,10 +55,10 @@ with Sem_Util; use Sem_Util;
 with Sinfo;    use Sinfo;
 with Snames;   use Snames;
 with Stand;    use Stand;
+with Targparm; use Targparm;
 with Tbuild;   use Tbuild;
 with Types;    use Types;
 with Uintp;    use Uintp;
-with Opt;
 
 package body Exp_Ch9 is
 
@@ -7141,13 +7141,16 @@ package body Exp_Ch9 is
       Tasknm    : constant Name_Id    := Chars (Tasktyp);
       Taskdef   : constant Node_Id    := Task_Definition (N);
 
-      Proc_Spec : Node_Id;
-      Rec_Decl  : Node_Id;
-      Rec_Ent   : Entity_Id;
-      Cdecls    : List_Id;
-      Elab_Decl : Node_Id;
-      Size_Decl : Node_Id;
-      Body_Decl : Node_Id;
+      Proc_Spec  : Node_Id;
+      Rec_Decl   : Node_Id;
+      Rec_Ent    : Entity_Id;
+      Cdecls     : List_Id;
+      Elab_Decl  : Node_Id;
+      Size_Decl  : Node_Id;
+      Body_Decl  : Node_Id;
+      Task_Size  : Node_Id;
+      Ent_Stack  : Entity_Id;
+      Decl_Stack : Node_Id;
 
    begin
       --  If already expanded, nothing to do
@@ -7249,6 +7252,51 @@ package body Exp_Ch9 is
 
       end if;
 
+      --  Declare static stack (that is, created by the expander) if we
+      --  are using the Restricted run time on a bare board configuration.
+
+      if Restricted_Profile
+        and then Preallocated_Stacks_On_Target
+      then
+         --  First we need to extract the appropriate stack size
+
+         Ent_Stack := Make_Defining_Identifier (Loc, Name_uStack);
+
+         if Present (Taskdef) and then Has_Storage_Size_Pragma (Taskdef) then
+            Task_Size := Relocate_Node (
+              Expression (First (
+                Pragma_Argument_Associations (
+                  Find_Task_Or_Protected_Pragma
+                    (Taskdef, Name_Storage_Size)))));
+         else
+            Task_Size :=
+              New_Reference_To (RTE (RE_Default_Stack_Size), Loc);
+         end if;
+
+         Decl_Stack := Make_Component_Declaration (Loc,
+           Defining_Identifier  => Ent_Stack,
+
+           Component_Definition =>
+             Make_Component_Definition (Loc,
+               Aliased_Present     => True,
+               Subtype_Indication  => Make_Subtype_Indication (Loc,
+                 Subtype_Mark =>
+                   New_Occurrence_Of (RTE (RE_Storage_Array), Loc),
+
+                 Constraint   =>
+                   Make_Index_Or_Discriminant_Constraint (Loc,
+                     Constraints  => New_List (Make_Range (Loc,
+                       Low_Bound  => Make_Integer_Literal (Loc, 1),
+                       High_Bound => Convert_To (RTE (RE_Storage_Offset),
+                         Task_Size)))))));
+
+         Append_To (Cdecls, Decl_Stack);
+
+         --  The appropriate alignment for the stack is ensured by the
+         --  run-time code in charge of task creation.
+
+      end if;
+
       --  Add components for entry families
 
       Collect_Entry_Families (Loc, Cdecls, Size_Decl, Tasktyp);
@@ -8381,19 +8429,38 @@ package body Exp_Ch9 is
       --  Priority parameter. Set to Unspecified_Priority unless there is a
       --  priority pragma, in which case we take the value from the pragma.
 
-      if Present (Tdef)
-        and then Has_Priority_Pragma (Tdef)
-      then
+      if Present (Tdef) and then Has_Priority_Pragma (Tdef) then
          Append_To (Args,
            Make_Selected_Component (Loc,
              Prefix => Make_Identifier (Loc, Name_uInit),
              Selector_Name => Make_Identifier (Loc, Name_uPriority)));
-
       else
          Append_To (Args,
            New_Reference_To (RTE (RE_Unspecified_Priority), Loc));
       end if;
 
+      --  Optional Stack parameter
+
+      if Restricted_Profile then
+
+         --  If the stack has been preallocated by the expander then
+         --  pass its address. Otherwise, pass a null address.
+
+         if Preallocated_Stacks_On_Target then
+            Append_To (Args,
+              Make_Attribute_Reference (Loc,
+                Prefix         => Make_Selected_Component (Loc,
+                  Prefix        => Make_Identifier (Loc, Name_uInit),
+                  Selector_Name =>
+                    Make_Identifier (Loc, Name_uStack)),
+                Attribute_Name => Name_Address));
+
+         else
+            Append_To (Args,
+              New_Reference_To (RTE (RE_Null_Address), Loc));
+         end if;
+      end if;
+
       --  Size parameter. If no Storage_Size pragma is present, then
       --  the size is taken from the taskZ variable for the type, which
       --  is either Unspecified_Size, or has been reset by the use of
index 17c3ba6dffaf6185b6dbd9c5032f7ae63192af37..93126f0d3c742538c68257deb59f5a923620ea5c 100644 (file)
@@ -376,6 +376,7 @@ package body System.Tasking.Restricted.Stages is
 
    procedure Create_Restricted_Task
      (Priority      : Integer;
+      Stack_Address : System.Address;
       Size          : System.Parameters.Size_Type;
       Task_Info     : System.Task_Info.Task_Info_Type;
       State         : Task_Procedure_Access;
@@ -390,6 +391,11 @@ package body System.Tasking.Restricted.Stages is
       Success       : Boolean;
 
    begin
+      --  Stack is not preallocated on this target, so that
+      --  Stack_Address must be null.
+
+      pragma Assert (Stack_Address = Null_Address);
+
       if Priority = Unspecified_Priority then
          Base_Priority := Self_ID.Common.Base_Priority;
       else
index b8ec7c73bdc13c5e6f05627db37848300cde3fe1..f4aee5c7842e5f71d0733a2000ff72fecc958ca0 100644 (file)
@@ -129,6 +129,7 @@ package System.Tasking.Restricted.Stages is
 
    procedure Create_Restricted_Task
      (Priority      : Integer;
+      Stack_Address : System.Address;
       Size          : System.Parameters.Size_Type;
       Task_Info     : System.Task_Info.Task_Info_Type;
       State         : Task_Procedure_Access;
@@ -141,26 +142,39 @@ package System.Tasking.Restricted.Stages is
    --  This must be called to create a new task.
    --
    --  Priority is the task's priority (assumed to be in the
-   --   System.Any_Priority'Range)
+   --  System.Any_Priority'Range)
+   --
+   --  Stack_Address is the start address of the stack associated to the
+   --  task, in case it has been preallocated by the compiler; it is equal
+   --  to Null_Address when the stack needs to be allocated by the
+   --  underlying operating system.
+   --
    --  Size is the stack size of the task to create
+   --
    --  Task_Info is the task info associated with the created task, or
-   --   Unspecified_Task_Info if none.
+   --  Unspecified_Task_Info if none.
+   --
    --  State is the compiler generated task's procedure body
+   --
    --  Discriminants is a pointer to a limited record whose discriminants
-   --   are those of the task to create. This parameter should be passed as
-   --   the single argument to State.
+   --  are those of the task to create. This parameter should be passed as
+   --  the single argument to State.
+   --
    --  Elaborated is a pointer to a Boolean that must be set to true on exit
-   --   if the task could be sucessfully elaborated.
+   --  if the task could be sucessfully elaborated.
+   --
    --  Chain is a linked list of task that needs to be created. On exit,
-   --   Created_Task.Activation_Link will be Chain.T_ID, and Chain.T_ID
-   --   will be Created_Task (e.g the created task will be linked at the front
-   --   of Chain).
+   --  Created_Task.Activation_Link will be Chain.T_ID, and Chain.T_ID
+   --  will be Created_Task (e.g the created task will be linked at the front
+   --  of Chain).
+   --
    --  Task_Image is a string created by the compiler that the
-   --   run time can store to ease the debugging and the
-   --   Ada.Task_Identification facility.
+   --  run time can store to ease the debugging and the
+   --  Ada.Task_Identification facility.
+   --
    --  Created_Task is the resulting task.
    --
-   --  This procedure can raise Storage_Error if the task creation failed.
+   --  This procedure can raise Storage_Error if the task creation fails
 
    procedure Activate_Restricted_Tasks
      (Chain_Access : Activation_Chain_Access);
index 864c2deecc04d07b2c55034f258375bcac9c0474..1c9644c3eea5d74a68cc5ba4dadcf6adc4711aa1 100644 (file)
@@ -82,6 +82,7 @@ package body Snames is
      "_secondary_stack#" &
      "_service#" &
      "_size#" &
+     "_stack#" &
      "_tags#" &
      "_task#" &
      "_task_id#" &
index cb3b9d77bcccee65d710f3bf27706da14a7dfd4e..bd1f1ea8935b3606cc2d02cb1eaeb68ee75e37d3 100644 (file)
@@ -165,133 +165,134 @@ package Snames is
    Name_uSecondary_Stack               : constant Name_Id := N + 022;
    Name_uService                       : constant Name_Id := N + 023;
    Name_uSize                          : constant Name_Id := N + 024;
-   Name_uTags                          : constant Name_Id := N + 025;
-   Name_uTask                          : constant Name_Id := N + 026;
-   Name_uTask_Id                       : constant Name_Id := N + 027;
-   Name_uTask_Info                     : constant Name_Id := N + 028;
-   Name_uTask_Name                     : constant Name_Id := N + 029;
-   Name_uTrace_Sp                      : constant Name_Id := N + 030;
+   Name_uStack                         : constant Name_Id := N + 025;
+   Name_uTags                          : constant Name_Id := N + 026;
+   Name_uTask                          : constant Name_Id := N + 027;
+   Name_uTask_Id                       : constant Name_Id := N + 028;
+   Name_uTask_Info                     : constant Name_Id := N + 029;
+   Name_uTask_Name                     : constant Name_Id := N + 030;
+   Name_uTrace_Sp                      : constant Name_Id := N + 031;
 
    --  Names of routines in Ada.Finalization, needed by expander
 
-   Name_Initialize                     : constant Name_Id := N + 031;
-   Name_Adjust                         : constant Name_Id := N + 032;
-   Name_Finalize                       : constant Name_Id := N + 033;
+   Name_Initialize                     : constant Name_Id := N + 032;
+   Name_Adjust                         : constant Name_Id := N + 033;
+   Name_Finalize                       : constant Name_Id := N + 034;
 
    --  Names of fields declared in System.Finalization_Implementation,
    --  needed by the expander when generating code for finalization.
 
-   Name_Next                           : constant Name_Id := N + 034;
-   Name_Prev                           : constant Name_Id := N + 035;
+   Name_Next                           : constant Name_Id := N + 035;
+   Name_Prev                           : constant Name_Id := N + 036;
 
    --  Names of TSS routines for implementation of DSA over PolyORB
 
-   Name_uTypeCode                      : constant Name_Id := N + 036;
-   Name_uFrom_Any                      : constant Name_Id := N + 037;
-   Name_uTo_Any                        : constant Name_Id := N + 038;
+   Name_uTypeCode                      : constant Name_Id := N + 037;
+   Name_uFrom_Any                      : constant Name_Id := N + 038;
+   Name_uTo_Any                        : constant Name_Id := N + 039;
 
    --  Names of allocation routines, also needed by expander
 
-   Name_Allocate                       : constant Name_Id := N + 039;
-   Name_Deallocate                     : constant Name_Id := N + 040;
-   Name_Dereference                    : constant Name_Id := N + 041;
+   Name_Allocate                       : constant Name_Id := N + 040;
+   Name_Deallocate                     : constant Name_Id := N + 041;
+   Name_Dereference                    : constant Name_Id := N + 042;
 
    --  Names of Text_IO generic subpackages (see Rtsfind.Text_IO_Kludge)
 
-   First_Text_IO_Package               : constant Name_Id := N + 042;
-   Name_Decimal_IO                     : constant Name_Id := N + 042;
-   Name_Enumeration_IO                 : constant Name_Id := N + 043;
-   Name_Fixed_IO                       : constant Name_Id := N + 044;
-   Name_Float_IO                       : constant Name_Id := N + 045;
-   Name_Integer_IO                     : constant Name_Id := N + 046;
-   Name_Modular_IO                     : constant Name_Id := N + 047;
-   Last_Text_IO_Package                : constant Name_Id := N + 047;
+   First_Text_IO_Package               : constant Name_Id := N + 043;
+   Name_Decimal_IO                     : constant Name_Id := N + 043;
+   Name_Enumeration_IO                 : constant Name_Id := N + 044;
+   Name_Fixed_IO                       : constant Name_Id := N + 045;
+   Name_Float_IO                       : constant Name_Id := N + 046;
+   Name_Integer_IO                     : constant Name_Id := N + 047;
+   Name_Modular_IO                     : constant Name_Id := N + 048;
+   Last_Text_IO_Package                : constant Name_Id := N + 048;
 
    subtype Text_IO_Package_Name is Name_Id
      range First_Text_IO_Package .. Last_Text_IO_Package;
 
    --  Names of files in library for Ada.Text_IO and Ada.Wide_Text_IO
 
-   Name_a_textio                       : constant Name_Id := N + 048;
-   Name_a_witeio                       : constant Name_Id := N + 049;
+   Name_a_textio                       : constant Name_Id := N + 049;
+   Name_a_witeio                       : constant Name_Id := N + 050;
 
    --  Some miscellaneous names used for error detection/recovery
 
-   Name_Const                          : constant Name_Id := N + 050;
-   Name_Error                          : constant Name_Id := N + 051;
-   Name_Go                             : constant Name_Id := N + 052;
-   Name_Put                            : constant Name_Id := N + 053;
-   Name_Put_Line                       : constant Name_Id := N + 054;
-   Name_To                             : constant Name_Id := N + 055;
+   Name_Const                          : constant Name_Id := N + 051;
+   Name_Error                          : constant Name_Id := N + 052;
+   Name_Go                             : constant Name_Id := N + 053;
+   Name_Put                            : constant Name_Id := N + 054;
+   Name_Put_Line                       : constant Name_Id := N + 055;
+   Name_To                             : constant Name_Id := N + 056;
 
    --  Names for packages that are treated specially by the compiler
 
-   Name_Finalization                   : constant Name_Id := N + 056;
-   Name_Finalization_Root              : constant Name_Id := N + 057;
-   Name_Interfaces                     : constant Name_Id := N + 058;
-   Name_Standard                       : constant Name_Id := N + 059;
-   Name_System                         : constant Name_Id := N + 060;
-   Name_Text_IO                        : constant Name_Id := N + 061;
-   Name_Wide_Text_IO                   : constant Name_Id := N + 062;
+   Name_Finalization                   : constant Name_Id := N + 057;
+   Name_Finalization_Root              : constant Name_Id := N + 058;
+   Name_Interfaces                     : constant Name_Id := N + 059;
+   Name_Standard                       : constant Name_Id := N + 060;
+   Name_System                         : constant Name_Id := N + 061;
+   Name_Text_IO                        : constant Name_Id := N + 062;
+   Name_Wide_Text_IO                   : constant Name_Id := N + 063;
 
    --  Names of implementations of the distributed systems annex
 
-   Name_No_DSA                         : constant Name_Id := N + 063;
-   Name_GLADE_DSA                      : constant Name_Id := N + 064;
-   Name_PolyORB_DSA                    : constant Name_Id := N + 065;
+   Name_No_DSA                         : constant Name_Id := N + 064;
+   Name_GLADE_DSA                      : constant Name_Id := N + 065;
+   Name_PolyORB_DSA                    : constant Name_Id := N + 066;
 
    --  Names of identifiers used in expanding distribution stubs
 
-   Name_Addr                           : constant Name_Id := N + 066;
-   Name_Async                          : constant Name_Id := N + 067;
-   Name_Get_Active_Partition_ID        : constant Name_Id := N + 068;
-   Name_Get_RCI_Package_Receiver       : constant Name_Id := N + 069;
-   Name_Get_RCI_Package_Ref            : constant Name_Id := N + 070;
-   Name_Origin                         : constant Name_Id := N + 071;
-   Name_Params                         : constant Name_Id := N + 072;
-   Name_Partition                      : constant Name_Id := N + 073;
-   Name_Partition_Interface            : constant Name_Id := N + 074;
-   Name_Ras                            : constant Name_Id := N + 075;
-   Name_Call                           : constant Name_Id := N + 076;
-   Name_RCI_Name                       : constant Name_Id := N + 077;
-   Name_Receiver                       : constant Name_Id := N + 078;
-   Name_Result                         : constant Name_Id := N + 079;
-   Name_Rpc                            : constant Name_Id := N + 080;
-   Name_Subp_Id                        : constant Name_Id := N + 081;
-   Name_Operation                      : constant Name_Id := N + 082;
-   Name_Argument                       : constant Name_Id := N + 083;
-   Name_Arg_Modes                      : constant Name_Id := N + 084;
-   Name_Handler                        : constant Name_Id := N + 085;
-   Name_Target                         : constant Name_Id := N + 086;
-   Name_Req                            : constant Name_Id := N + 087;
-   Name_Obj_TypeCode                   : constant Name_Id := N + 088;
-   Name_Stub                           : constant Name_Id := N + 089;
+   Name_Addr                           : constant Name_Id := N + 067;
+   Name_Async                          : constant Name_Id := N + 068;
+   Name_Get_Active_Partition_ID        : constant Name_Id := N + 069;
+   Name_Get_RCI_Package_Receiver       : constant Name_Id := N + 070;
+   Name_Get_RCI_Package_Ref            : constant Name_Id := N + 071;
+   Name_Origin                         : constant Name_Id := N + 072;
+   Name_Params                         : constant Name_Id := N + 073;
+   Name_Partition                      : constant Name_Id := N + 074;
+   Name_Partition_Interface            : constant Name_Id := N + 075;
+   Name_Ras                            : constant Name_Id := N + 076;
+   Name_Call                           : constant Name_Id := N + 077;
+   Name_RCI_Name                       : constant Name_Id := N + 078;
+   Name_Receiver                       : constant Name_Id := N + 079;
+   Name_Result                         : constant Name_Id := N + 080;
+   Name_Rpc                            : constant Name_Id := N + 081;
+   Name_Subp_Id                        : constant Name_Id := N + 082;
+   Name_Operation                      : constant Name_Id := N + 083;
+   Name_Argument                       : constant Name_Id := N + 084;
+   Name_Arg_Modes                      : constant Name_Id := N + 085;
+   Name_Handler                        : constant Name_Id := N + 086;
+   Name_Target                         : constant Name_Id := N + 087;
+   Name_Req                            : constant Name_Id := N + 088;
+   Name_Obj_TypeCode                   : constant Name_Id := N + 089;
+   Name_Stub                           : constant Name_Id := N + 090;
 
    --  Operator Symbol entries. The actual names have an upper case O at
    --  the start in place of the Op_ prefix (e.g. the actual name that
    --  corresponds to Name_Op_Abs is "Oabs".
 
-   First_Operator_Name                 : constant Name_Id := N + 090;
-   Name_Op_Abs                         : constant Name_Id := N + 090; -- "abs"
-   Name_Op_And                         : constant Name_Id := N + 091; -- "and"
-   Name_Op_Mod                         : constant Name_Id := N + 092; -- "mod"
-   Name_Op_Not                         : constant Name_Id := N + 093; -- "not"
-   Name_Op_Or                          : constant Name_Id := N + 094; -- "or"
-   Name_Op_Rem                         : constant Name_Id := N + 095; -- "rem"
-   Name_Op_Xor                         : constant Name_Id := N + 096; -- "xor"
-   Name_Op_Eq                          : constant Name_Id := N + 097; -- "="
-   Name_Op_Ne                          : constant Name_Id := N + 098; -- "/="
-   Name_Op_Lt                          : constant Name_Id := N + 099; -- "<"
-   Name_Op_Le                          : constant Name_Id := N + 100; -- "<="
-   Name_Op_Gt                          : constant Name_Id := N + 101; -- ">"
-   Name_Op_Ge                          : constant Name_Id := N + 102; -- ">="
-   Name_Op_Add                         : constant Name_Id := N + 103; -- "+"
-   Name_Op_Subtract                    : constant Name_Id := N + 104; -- "-"
-   Name_Op_Concat                      : constant Name_Id := N + 105; -- "&"
-   Name_Op_Multiply                    : constant Name_Id := N + 106; -- "*"
-   Name_Op_Divide                      : constant Name_Id := N + 107; -- "/"
-   Name_Op_Expon                       : constant Name_Id := N + 108; -- "**"
-   Last_Operator_Name                  : constant Name_Id := N + 108;
+   First_Operator_Name                 : constant Name_Id := N + 091;
+   Name_Op_Abs                         : constant Name_Id := N + 091; -- "abs"
+   Name_Op_And                         : constant Name_Id := N + 092; -- "and"
+   Name_Op_Mod                         : constant Name_Id := N + 093; -- "mod"
+   Name_Op_Not                         : constant Name_Id := N + 094; -- "not"
+   Name_Op_Or                          : constant Name_Id := N + 095; -- "or"
+   Name_Op_Rem                         : constant Name_Id := N + 096; -- "rem"
+   Name_Op_Xor                         : constant Name_Id := N + 097; -- "xor"
+   Name_Op_Eq                          : constant Name_Id := N + 098; -- "="
+   Name_Op_Ne                          : constant Name_Id := N + 099; -- "/="
+   Name_Op_Lt                          : constant Name_Id := N + 100; -- "<"
+   Name_Op_Le                          : constant Name_Id := N + 101; -- "<="
+   Name_Op_Gt                          : constant Name_Id := N + 102; -- ">"
+   Name_Op_Ge                          : constant Name_Id := N + 103; -- ">="
+   Name_Op_Add                         : constant Name_Id := N + 104; -- "+"
+   Name_Op_Subtract                    : constant Name_Id := N + 105; -- "-"
+   Name_Op_Concat                      : constant Name_Id := N + 106; -- "&"
+   Name_Op_Multiply                    : constant Name_Id := N + 107; -- "*"
+   Name_Op_Divide                      : constant Name_Id := N + 108; -- "/"
+   Name_Op_Expon                       : constant Name_Id := N + 109; -- "**"
+   Last_Operator_Name                  : constant Name_Id := N + 109;
 
    --  Names for all pragmas recognized by GNAT. The entries with the comment
    --  "Ada 83" are pragmas that are defined in Ada 83, but not in Ada 95.
@@ -314,64 +315,64 @@ package Snames is
    --  only in GNAT for the AAMP. They are ignored in other versions with
    --  appropriate warnings.
 
-   First_Pragma_Name                   : constant Name_Id := N + 109;
+   First_Pragma_Name                   : constant Name_Id := N + 110;
 
    --  Configuration pragmas are grouped at start
 
-   Name_Ada_83                         : constant Name_Id := N + 109; -- GNAT
-   Name_Ada_95                         : constant Name_Id := N + 110; -- GNAT
-   Name_Ada_05                         : constant Name_Id := N + 111; -- GNAT
-   Name_C_Pass_By_Copy                 : constant Name_Id := N + 112; -- GNAT
-   Name_Compile_Time_Warning           : constant Name_Id := N + 113; -- GNAT
-   Name_Component_Alignment            : constant Name_Id := N + 114; -- GNAT
-   Name_Convention_Identifier          : constant Name_Id := N + 115; -- GNAT
-   Name_Detect_Blocking                : constant Name_Id := N + 116; -- Ada05
-   Name_Discard_Names                  : constant Name_Id := N + 117;
-   Name_Elaboration_Checks             : constant Name_Id := N + 118; -- GNAT
-   Name_Eliminate                      : constant Name_Id := N + 119; -- GNAT
-   Name_Explicit_Overriding            : constant Name_Id := N + 120;
-   Name_Extend_System                  : constant Name_Id := N + 121; -- GNAT
-   Name_Extensions_Allowed             : constant Name_Id := N + 122; -- GNAT
-   Name_External_Name_Casing           : constant Name_Id := N + 123; -- GNAT
-   Name_Float_Representation           : constant Name_Id := N + 124; -- GNAT
-   Name_Initialize_Scalars             : constant Name_Id := N + 125; -- GNAT
-   Name_Interrupt_State                : constant Name_Id := N + 126; -- GNAT
-   Name_License                        : constant Name_Id := N + 127; -- GNAT
-   Name_Locking_Policy                 : constant Name_Id := N + 128;
-   Name_Long_Float                     : constant Name_Id := N + 129; -- VMS
-   Name_No_Run_Time                    : constant Name_Id := N + 130; -- GNAT
-   Name_No_Strict_Aliasing             : constant Name_Id := N + 131; -- GNAT
-   Name_Normalize_Scalars              : constant Name_Id := N + 132;
-   Name_Polling                        : constant Name_Id := N + 133; -- GNAT
-   Name_Persistent_Data                : constant Name_Id := N + 134; -- GNAT
-   Name_Persistent_Object              : constant Name_Id := N + 135; -- GNAT
-   Name_Profile                        : constant Name_Id := N + 136; -- Ada05
-   Name_Profile_Warnings               : constant Name_Id := N + 137; -- GNAT
-   Name_Propagate_Exceptions           : constant Name_Id := N + 138; -- GNAT
-   Name_Queuing_Policy                 : constant Name_Id := N + 139;
-   Name_Ravenscar                      : constant Name_Id := N + 140;
-   Name_Restricted_Run_Time            : constant Name_Id := N + 141;
-   Name_Restrictions                   : constant Name_Id := N + 142;
-   Name_Restriction_Warnings           : constant Name_Id := N + 143; -- GNAT
-   Name_Reviewable                     : constant Name_Id := N + 144;
-   Name_Source_File_Name               : constant Name_Id := N + 145; -- GNAT
-   Name_Source_File_Name_Project       : constant Name_Id := N + 146; -- GNAT
-   Name_Style_Checks                   : constant Name_Id := N + 147; -- GNAT
-   Name_Suppress                       : constant Name_Id := N + 148;
-   Name_Suppress_Exception_Locations   : constant Name_Id := N + 149; -- GNAT
-   Name_Task_Dispatching_Policy        : constant Name_Id := N + 150;
-   Name_Universal_Data                 : constant Name_Id := N + 151; -- AAMP
-   Name_Unsuppress                     : constant Name_Id := N + 152; -- GNAT
-   Name_Use_VADS_Size                  : constant Name_Id := N + 153; -- GNAT
-   Name_Validity_Checks                : constant Name_Id := N + 154; -- GNAT
-   Name_Warnings                       : constant Name_Id := N + 155; -- GNAT
-   Last_Configuration_Pragma_Name      : constant Name_Id := N + 155;
+   Name_Ada_83                         : constant Name_Id := N + 110; -- GNAT
+   Name_Ada_95                         : constant Name_Id := N + 111; -- GNAT
+   Name_Ada_05                         : constant Name_Id := N + 112; -- GNAT
+   Name_C_Pass_By_Copy                 : constant Name_Id := N + 113; -- GNAT
+   Name_Compile_Time_Warning           : constant Name_Id := N + 114; -- GNAT
+   Name_Component_Alignment            : constant Name_Id := N + 115; -- GNAT
+   Name_Convention_Identifier          : constant Name_Id := N + 116; -- GNAT
+   Name_Detect_Blocking                : constant Name_Id := N + 117; -- Ada05
+   Name_Discard_Names                  : constant Name_Id := N + 118;
+   Name_Elaboration_Checks             : constant Name_Id := N + 119; -- GNAT
+   Name_Eliminate                      : constant Name_Id := N + 120; -- GNAT
+   Name_Explicit_Overriding            : constant Name_Id := N + 121;
+   Name_Extend_System                  : constant Name_Id := N + 122; -- GNAT
+   Name_Extensions_Allowed             : constant Name_Id := N + 123; -- GNAT
+   Name_External_Name_Casing           : constant Name_Id := N + 124; -- GNAT
+   Name_Float_Representation           : constant Name_Id := N + 125; -- GNAT
+   Name_Initialize_Scalars             : constant Name_Id := N + 126; -- GNAT
+   Name_Interrupt_State                : constant Name_Id := N + 127; -- GNAT
+   Name_License                        : constant Name_Id := N + 128; -- GNAT
+   Name_Locking_Policy                 : constant Name_Id := N + 129;
+   Name_Long_Float                     : constant Name_Id := N + 130; -- VMS
+   Name_No_Run_Time                    : constant Name_Id := N + 131; -- GNAT
+   Name_No_Strict_Aliasing             : constant Name_Id := N + 132; -- GNAT
+   Name_Normalize_Scalars              : constant Name_Id := N + 133;
+   Name_Polling                        : constant Name_Id := N + 134; -- GNAT
+   Name_Persistent_Data                : constant Name_Id := N + 135; -- GNAT
+   Name_Persistent_Object              : constant Name_Id := N + 136; -- GNAT
+   Name_Profile                        : constant Name_Id := N + 137; -- Ada05
+   Name_Profile_Warnings               : constant Name_Id := N + 138; -- GNAT
+   Name_Propagate_Exceptions           : constant Name_Id := N + 139; -- GNAT
+   Name_Queuing_Policy                 : constant Name_Id := N + 140;
+   Name_Ravenscar                      : constant Name_Id := N + 141;
+   Name_Restricted_Run_Time            : constant Name_Id := N + 142;
+   Name_Restrictions                   : constant Name_Id := N + 143;
+   Name_Restriction_Warnings           : constant Name_Id := N + 144; -- GNAT
+   Name_Reviewable                     : constant Name_Id := N + 145;
+   Name_Source_File_Name               : constant Name_Id := N + 146; -- GNAT
+   Name_Source_File_Name_Project       : constant Name_Id := N + 147; -- GNAT
+   Name_Style_Checks                   : constant Name_Id := N + 148; -- GNAT
+   Name_Suppress                       : constant Name_Id := N + 149;
+   Name_Suppress_Exception_Locations   : constant Name_Id := N + 150; -- GNAT
+   Name_Task_Dispatching_Policy        : constant Name_Id := N + 151;
+   Name_Universal_Data                 : constant Name_Id := N + 152; -- AAMP
+   Name_Unsuppress                     : constant Name_Id := N + 153; -- GNAT
+   Name_Use_VADS_Size                  : constant Name_Id := N + 154; -- GNAT
+   Name_Validity_Checks                : constant Name_Id := N + 155; -- GNAT
+   Name_Warnings                       : constant Name_Id := N + 156; -- GNAT
+   Last_Configuration_Pragma_Name      : constant Name_Id := N + 156;
 
    --  Remaining pragma names
 
-   Name_Abort_Defer                    : constant Name_Id := N + 156; -- GNAT
-   Name_All_Calls_Remote               : constant Name_Id := N + 157;
-   Name_Annotate                       : constant Name_Id := N + 158; -- GNAT
+   Name_Abort_Defer                    : constant Name_Id := N + 157; -- GNAT
+   Name_All_Calls_Remote               : constant Name_Id := N + 158;
+   Name_Annotate                       : constant Name_Id := N + 159; -- GNAT
 
    --  Note: AST_Entry is not in this list because its name matches the
    --  name of the corresponding attribute. However, it is included in the
@@ -379,78 +380,78 @@ package Snames is
    --  and Check_Pragma_Id correctly recognize and process Name_AST_Entry.
    --  AST_Entry is a VMS specific pragma.
 
-   Name_Assert                         : constant Name_Id := N + 159; -- GNAT
-   Name_Asynchronous                   : constant Name_Id := N + 160;
-   Name_Atomic                         : constant Name_Id := N + 161;
-   Name_Atomic_Components              : constant Name_Id := N + 162;
-   Name_Attach_Handler                 : constant Name_Id := N + 163;
-   Name_Comment                        : constant Name_Id := N + 164; -- GNAT
-   Name_Common_Object                  : constant Name_Id := N + 165; -- GNAT
-   Name_Complex_Representation         : constant Name_Id := N + 166; -- GNAT
-   Name_Controlled                     : constant Name_Id := N + 167;
-   Name_Convention                     : constant Name_Id := N + 168;
-   Name_CPP_Class                      : constant Name_Id := N + 169; -- GNAT
-   Name_CPP_Constructor                : constant Name_Id := N + 170; -- GNAT
-   Name_CPP_Virtual                    : constant Name_Id := N + 171; -- GNAT
-   Name_CPP_Vtable                     : constant Name_Id := N + 172; -- GNAT
-   Name_Debug                          : constant Name_Id := N + 173; -- GNAT
-   Name_Elaborate                      : constant Name_Id := N + 174; -- Ada 83
-   Name_Elaborate_All                  : constant Name_Id := N + 175;
-   Name_Elaborate_Body                 : constant Name_Id := N + 176;
-   Name_Export                         : constant Name_Id := N + 177;
-   Name_Export_Exception               : constant Name_Id := N + 178; -- VMS
-   Name_Export_Function                : constant Name_Id := N + 179; -- GNAT
-   Name_Export_Object                  : constant Name_Id := N + 180; -- GNAT
-   Name_Export_Procedure               : constant Name_Id := N + 181; -- GNAT
-   Name_Export_Value                   : constant Name_Id := N + 182; -- GNAT
-   Name_Export_Valued_Procedure        : constant Name_Id := N + 183; -- GNAT
-   Name_External                       : constant Name_Id := N + 184; -- GNAT
-   Name_Finalize_Storage_Only          : constant Name_Id := N + 185; -- GNAT
-   Name_Ident                          : constant Name_Id := N + 186; -- VMS
-   Name_Import                         : constant Name_Id := N + 187;
-   Name_Import_Exception               : constant Name_Id := N + 188; -- VMS
-   Name_Import_Function                : constant Name_Id := N + 189; -- GNAT
-   Name_Import_Object                  : constant Name_Id := N + 190; -- GNAT
-   Name_Import_Procedure               : constant Name_Id := N + 191; -- GNAT
-   Name_Import_Valued_Procedure        : constant Name_Id := N + 192; -- GNAT
-   Name_Inline                         : constant Name_Id := N + 193;
-   Name_Inline_Always                  : constant Name_Id := N + 194; -- GNAT
-   Name_Inline_Generic                 : constant Name_Id := N + 195; -- GNAT
-   Name_Inspection_Point               : constant Name_Id := N + 196;
-   Name_Interface                      : constant Name_Id := N + 197; -- Ada 83
-   Name_Interface_Name                 : constant Name_Id := N + 198; -- GNAT
-   Name_Interrupt_Handler              : constant Name_Id := N + 199;
-   Name_Interrupt_Priority             : constant Name_Id := N + 200;
-   Name_Java_Constructor               : constant Name_Id := N + 201; -- GNAT
-   Name_Java_Interface                 : constant Name_Id := N + 202; -- GNAT
-   Name_Keep_Names                     : constant Name_Id := N + 203; -- GNAT
-   Name_Link_With                      : constant Name_Id := N + 204; -- GNAT
-   Name_Linker_Alias                   : constant Name_Id := N + 205; -- GNAT
-   Name_Linker_Options                 : constant Name_Id := N + 206;
-   Name_Linker_Section                 : constant Name_Id := N + 207; -- GNAT
-   Name_List                           : constant Name_Id := N + 208;
-   Name_Machine_Attribute              : constant Name_Id := N + 209; -- GNAT
-   Name_Main                           : constant Name_Id := N + 210; -- GNAT
-   Name_Main_Storage                   : constant Name_Id := N + 211; -- GNAT
-   Name_Memory_Size                    : constant Name_Id := N + 212; -- Ada 83
-   Name_No_Return                      : constant Name_Id := N + 213; -- GNAT
-   Name_Obsolescent                    : constant Name_Id := N + 214; -- GNAT
-   Name_Optimize                       : constant Name_Id := N + 215;
-   Name_Optional_Overriding            : constant Name_Id := N + 216;
-   Name_Overriding                     : constant Name_Id := N + 217;
-   Name_Pack                           : constant Name_Id := N + 218;
-   Name_Page                           : constant Name_Id := N + 219;
-   Name_Passive                        : constant Name_Id := N + 220; -- GNAT
-   Name_Preelaborate                   : constant Name_Id := N + 221;
-   Name_Priority                       : constant Name_Id := N + 222;
-   Name_Psect_Object                   : constant Name_Id := N + 223; -- VMS
-   Name_Pure                           : constant Name_Id := N + 224;
-   Name_Pure_Function                  : constant Name_Id := N + 225; -- GNAT
-   Name_Remote_Call_Interface          : constant Name_Id := N + 226;
-   Name_Remote_Types                   : constant Name_Id := N + 227;
-   Name_Share_Generic                  : constant Name_Id := N + 228; -- GNAT
-   Name_Shared                         : constant Name_Id := N + 229; -- Ada 83
-   Name_Shared_Passive                 : constant Name_Id := N + 230;
+   Name_Assert                         : constant Name_Id := N + 160; -- GNAT
+   Name_Asynchronous                   : constant Name_Id := N + 161;
+   Name_Atomic                         : constant Name_Id := N + 162;
+   Name_Atomic_Components              : constant Name_Id := N + 163;
+   Name_Attach_Handler                 : constant Name_Id := N + 164;
+   Name_Comment                        : constant Name_Id := N + 165; -- GNAT
+   Name_Common_Object                  : constant Name_Id := N + 166; -- GNAT
+   Name_Complex_Representation         : constant Name_Id := N + 167; -- GNAT
+   Name_Controlled                     : constant Name_Id := N + 168;
+   Name_Convention                     : constant Name_Id := N + 169;
+   Name_CPP_Class                      : constant Name_Id := N + 170; -- GNAT
+   Name_CPP_Constructor                : constant Name_Id := N + 171; -- GNAT
+   Name_CPP_Virtual                    : constant Name_Id := N + 172; -- GNAT
+   Name_CPP_Vtable                     : constant Name_Id := N + 173; -- GNAT
+   Name_Debug                          : constant Name_Id := N + 174; -- GNAT
+   Name_Elaborate                      : constant Name_Id := N + 175; -- Ada 83
+   Name_Elaborate_All                  : constant Name_Id := N + 176;
+   Name_Elaborate_Body                 : constant Name_Id := N + 177;
+   Name_Export                         : constant Name_Id := N + 178;
+   Name_Export_Exception               : constant Name_Id := N + 179; -- VMS
+   Name_Export_Function                : constant Name_Id := N + 180; -- GNAT
+   Name_Export_Object                  : constant Name_Id := N + 181; -- GNAT
+   Name_Export_Procedure               : constant Name_Id := N + 182; -- GNAT
+   Name_Export_Value                   : constant Name_Id := N + 183; -- GNAT
+   Name_Export_Valued_Procedure        : constant Name_Id := N + 184; -- GNAT
+   Name_External                       : constant Name_Id := N + 185; -- GNAT
+   Name_Finalize_Storage_Only          : constant Name_Id := N + 186; -- GNAT
+   Name_Ident                          : constant Name_Id := N + 187; -- VMS
+   Name_Import                         : constant Name_Id := N + 188;
+   Name_Import_Exception               : constant Name_Id := N + 189; -- VMS
+   Name_Import_Function                : constant Name_Id := N + 190; -- GNAT
+   Name_Import_Object                  : constant Name_Id := N + 191; -- GNAT
+   Name_Import_Procedure               : constant Name_Id := N + 192; -- GNAT
+   Name_Import_Valued_Procedure        : constant Name_Id := N + 193; -- GNAT
+   Name_Inline                         : constant Name_Id := N + 194;
+   Name_Inline_Always                  : constant Name_Id := N + 195; -- GNAT
+   Name_Inline_Generic                 : constant Name_Id := N + 196; -- GNAT
+   Name_Inspection_Point               : constant Name_Id := N + 197;
+   Name_Interface                      : constant Name_Id := N + 198; -- Ada 83
+   Name_Interface_Name                 : constant Name_Id := N + 199; -- GNAT
+   Name_Interrupt_Handler              : constant Name_Id := N + 200;
+   Name_Interrupt_Priority             : constant Name_Id := N + 201;
+   Name_Java_Constructor               : constant Name_Id := N + 202; -- GNAT
+   Name_Java_Interface                 : constant Name_Id := N + 203; -- GNAT
+   Name_Keep_Names                     : constant Name_Id := N + 204; -- GNAT
+   Name_Link_With                      : constant Name_Id := N + 205; -- GNAT
+   Name_Linker_Alias                   : constant Name_Id := N + 206; -- GNAT
+   Name_Linker_Options                 : constant Name_Id := N + 207;
+   Name_Linker_Section                 : constant Name_Id := N + 208; -- GNAT
+   Name_List                           : constant Name_Id := N + 209;
+   Name_Machine_Attribute              : constant Name_Id := N + 210; -- GNAT
+   Name_Main                           : constant Name_Id := N + 211; -- GNAT
+   Name_Main_Storage                   : constant Name_Id := N + 212; -- GNAT
+   Name_Memory_Size                    : constant Name_Id := N + 213; -- Ada 83
+   Name_No_Return                      : constant Name_Id := N + 214; -- GNAT
+   Name_Obsolescent                    : constant Name_Id := N + 215; -- GNAT
+   Name_Optimize                       : constant Name_Id := N + 216;
+   Name_Optional_Overriding            : constant Name_Id := N + 217;
+   Name_Overriding                     : constant Name_Id := N + 218;
+   Name_Pack                           : constant Name_Id := N + 219;
+   Name_Page                           : constant Name_Id := N + 220;
+   Name_Passive                        : constant Name_Id := N + 221; -- GNAT
+   Name_Preelaborate                   : constant Name_Id := N + 222;
+   Name_Priority                       : constant Name_Id := N + 223;
+   Name_Psect_Object                   : constant Name_Id := N + 224; -- VMS
+   Name_Pure                           : constant Name_Id := N + 225;
+   Name_Pure_Function                  : constant Name_Id := N + 226; -- GNAT
+   Name_Remote_Call_Interface          : constant Name_Id := N + 227;
+   Name_Remote_Types                   : constant Name_Id := N + 228;
+   Name_Share_Generic                  : constant Name_Id := N + 229; -- GNAT
+   Name_Shared                         : constant Name_Id := N + 230; -- Ada 83
+   Name_Shared_Passive                 : constant Name_Id := N + 231;
 
    --  Note: Storage_Size is not in this list because its name matches the
    --  name of the corresponding attribute. However, it is included in the
@@ -460,27 +461,27 @@ package Snames is
    --  Note: Storage_Unit is also omitted from the list because of a clash
    --  with an attribute name, and is treated similarly.
 
-   Name_Source_Reference               : constant Name_Id := N + 231; -- GNAT
-   Name_Stream_Convert                 : constant Name_Id := N + 232; -- GNAT
-   Name_Subtitle                       : constant Name_Id := N + 233; -- GNAT
-   Name_Suppress_All                   : constant Name_Id := N + 234; -- GNAT
-   Name_Suppress_Debug_Info            : constant Name_Id := N + 235; -- GNAT
-   Name_Suppress_Initialization        : constant Name_Id := N + 236; -- GNAT
-   Name_System_Name                    : constant Name_Id := N + 237; -- Ada 83
-   Name_Task_Info                      : constant Name_Id := N + 238; -- GNAT
-   Name_Task_Name                      : constant Name_Id := N + 239; -- GNAT
-   Name_Task_Storage                   : constant Name_Id := N + 240; -- VMS
-   Name_Thread_Body                    : constant Name_Id := N + 241; -- GNAT
-   Name_Time_Slice                     : constant Name_Id := N + 242; -- GNAT
-   Name_Title                          : constant Name_Id := N + 243; -- GNAT
-   Name_Unchecked_Union                : constant Name_Id := N + 244; -- GNAT
-   Name_Unimplemented_Unit             : constant Name_Id := N + 245; -- GNAT
-   Name_Unreferenced                   : constant Name_Id := N + 246; -- GNAT
-   Name_Unreserve_All_Interrupts       : constant Name_Id := N + 247; -- GNAT
-   Name_Volatile                       : constant Name_Id := N + 248;
-   Name_Volatile_Components            : constant Name_Id := N + 249;
-   Name_Weak_External                  : constant Name_Id := N + 250; -- GNAT
-   Last_Pragma_Name                    : constant Name_Id := N + 250;
+   Name_Source_Reference               : constant Name_Id := N + 232; -- GNAT
+   Name_Stream_Convert                 : constant Name_Id := N + 233; -- GNAT
+   Name_Subtitle                       : constant Name_Id := N + 234; -- GNAT
+   Name_Suppress_All                   : constant Name_Id := N + 235; -- GNAT
+   Name_Suppress_Debug_Info            : constant Name_Id := N + 236; -- GNAT
+   Name_Suppress_Initialization        : constant Name_Id := N + 237; -- GNAT
+   Name_System_Name                    : constant Name_Id := N + 238; -- Ada 83
+   Name_Task_Info                      : constant Name_Id := N + 239; -- GNAT
+   Name_Task_Name                      : constant Name_Id := N + 240; -- GNAT
+   Name_Task_Storage                   : constant Name_Id := N + 241; -- VMS
+   Name_Thread_Body                    : constant Name_Id := N + 242; -- GNAT
+   Name_Time_Slice                     : constant Name_Id := N + 243; -- GNAT
+   Name_Title                          : constant Name_Id := N + 244; -- GNAT
+   Name_Unchecked_Union                : constant Name_Id := N + 245; -- GNAT
+   Name_Unimplemented_Unit             : constant Name_Id := N + 246; -- GNAT
+   Name_Unreferenced                   : constant Name_Id := N + 247; -- GNAT
+   Name_Unreserve_All_Interrupts       : constant Name_Id := N + 248; -- GNAT
+   Name_Volatile                       : constant Name_Id := N + 249;
+   Name_Volatile_Components            : constant Name_Id := N + 250;
+   Name_Weak_External                  : constant Name_Id := N + 251; -- GNAT
+   Last_Pragma_Name                    : constant Name_Id := N + 251;
 
    --  Language convention names for pragma Convention/Export/Import/Interface
    --  Note that Name_C is not included in this list, since it was already
@@ -491,105 +492,105 @@ package Snames is
    --  Entry and Protected, this is because these conventions cannot be
    --  specified by a pragma.
 
-   First_Convention_Name               : constant Name_Id := N + 251;
-   Name_Ada                            : constant Name_Id := N + 251;
-   Name_Assembler                      : constant Name_Id := N + 252;
-   Name_COBOL                          : constant Name_Id := N + 253;
-   Name_CPP                            : constant Name_Id := N + 254;
-   Name_Fortran                        : constant Name_Id := N + 255;
-   Name_Intrinsic                      : constant Name_Id := N + 256;
-   Name_Java                           : constant Name_Id := N + 257;
-   Name_Stdcall                        : constant Name_Id := N + 258;
-   Name_Stubbed                        : constant Name_Id := N + 259;
-   Last_Convention_Name                : constant Name_Id := N + 259;
+   First_Convention_Name               : constant Name_Id := N + 252;
+   Name_Ada                            : constant Name_Id := N + 252;
+   Name_Assembler                      : constant Name_Id := N + 253;
+   Name_COBOL                          : constant Name_Id := N + 254;
+   Name_CPP                            : constant Name_Id := N + 255;
+   Name_Fortran                        : constant Name_Id := N + 256;
+   Name_Intrinsic                      : constant Name_Id := N + 257;
+   Name_Java                           : constant Name_Id := N + 258;
+   Name_Stdcall                        : constant Name_Id := N + 259;
+   Name_Stubbed                        : constant Name_Id := N + 260;
+   Last_Convention_Name                : constant Name_Id := N + 260;
 
    --  The following names are preset as synonyms for Assembler
 
-   Name_Asm                            : constant Name_Id := N + 260;
-   Name_Assembly                       : constant Name_Id := N + 261;
+   Name_Asm                            : constant Name_Id := N + 261;
+   Name_Assembly                       : constant Name_Id := N + 262;
 
    --  The following names are preset as synonyms for C
 
-   Name_Default                        : constant Name_Id := N + 262;
+   Name_Default                        : constant Name_Id := N + 263;
    --  Name_Exernal (previously defined as pragma)
 
    --  The following names are present as synonyms for Stdcall
 
-   Name_DLL                            : constant Name_Id := N + 263;
-   Name_Win32                          : constant Name_Id := N + 264;
+   Name_DLL                            : constant Name_Id := N + 264;
+   Name_Win32                          : constant Name_Id := N + 265;
 
    --  Other special names used in processing pragmas
 
-   Name_As_Is                          : constant Name_Id := N + 265;
-   Name_Body_File_Name                 : constant Name_Id := N + 266;
-   Name_Boolean_Entry_Barriers         : constant Name_Id := N + 267;
-   Name_Casing                         : constant Name_Id := N + 268;
-   Name_Code                           : constant Name_Id := N + 269;
-   Name_Component                      : constant Name_Id := N + 270;
-   Name_Component_Size_4               : constant Name_Id := N + 271;
-   Name_Copy                           : constant Name_Id := N + 272;
-   Name_D_Float                        : constant Name_Id := N + 273;
-   Name_Descriptor                     : constant Name_Id := N + 274;
-   Name_Dot_Replacement                : constant Name_Id := N + 275;
-   Name_Dynamic                        : constant Name_Id := N + 276;
-   Name_Entity                         : constant Name_Id := N + 277;
-   Name_External_Name                  : constant Name_Id := N + 278;
-   Name_First_Optional_Parameter       : constant Name_Id := N + 279;
-   Name_Form                           : constant Name_Id := N + 280;
-   Name_G_Float                        : constant Name_Id := N + 281;
-   Name_Gcc                            : constant Name_Id := N + 282;
-   Name_Gnat                           : constant Name_Id := N + 283;
-   Name_GPL                            : constant Name_Id := N + 284;
-   Name_IEEE_Float                     : constant Name_Id := N + 285;
-   Name_Internal                       : constant Name_Id := N + 286;
-   Name_Link_Name                      : constant Name_Id := N + 287;
-   Name_Lowercase                      : constant Name_Id := N + 288;
-   Name_Max_Entry_Queue_Depth          : constant Name_Id := N + 289;
-   Name_Max_Entry_Queue_Length         : constant Name_Id := N + 290;
-   Name_Max_Size                       : constant Name_Id := N + 291;
-   Name_Mechanism                      : constant Name_Id := N + 292;
-   Name_Mixedcase                      : constant Name_Id := N + 293;
-   Name_Modified_GPL                   : constant Name_Id := N + 294;
-   Name_Name                           : constant Name_Id := N + 295;
-   Name_NCA                            : constant Name_Id := N + 296;
-   Name_No                             : constant Name_Id := N + 297;
-   Name_On                             : constant Name_Id := N + 298;
-   Name_Parameter_Types                : constant Name_Id := N + 299;
-   Name_Reference                      : constant Name_Id := N + 300;
-   Name_No_Dynamic_Attachment          : constant Name_Id := N + 301;
-   Name_No_Dynamic_Interrupts          : constant Name_Id := N + 302;
-   Name_No_Requeue                     : constant Name_Id := N + 303;
-   Name_No_Requeue_Statements          : constant Name_Id := N + 304;
-   Name_No_Task_Attributes             : constant Name_Id := N + 305;
-   Name_No_Task_Attributes_Package     : constant Name_Id := N + 306;
-   Name_Restricted                     : constant Name_Id := N + 307;
-   Name_Result_Mechanism               : constant Name_Id := N + 308;
-   Name_Result_Type                    : constant Name_Id := N + 309;
-   Name_Runtime                        : constant Name_Id := N + 310;
-   Name_SB                             : constant Name_Id := N + 311;
-   Name_Secondary_Stack_Size           : constant Name_Id := N + 312;
-   Name_Section                        : constant Name_Id := N + 313;
-   Name_Semaphore                      : constant Name_Id := N + 314;
-   Name_Simple_Barriers                : constant Name_Id := N + 315;
-   Name_Spec_File_Name                 : constant Name_Id := N + 316;
-   Name_Static                         : constant Name_Id := N + 317;
-   Name_Stack_Size                     : constant Name_Id := N + 318;
-   Name_Subunit_File_Name              : constant Name_Id := N + 319;
-   Name_Task_Stack_Size_Default        : constant Name_Id := N + 320;
-   Name_Task_Type                      : constant Name_Id := N + 321;
-   Name_Time_Slicing_Enabled           : constant Name_Id := N + 322;
-   Name_Top_Guard                      : constant Name_Id := N + 323;
-   Name_UBA                            : constant Name_Id := N + 324;
-   Name_UBS                            : constant Name_Id := N + 325;
-   Name_UBSB                           : constant Name_Id := N + 326;
-   Name_Unit_Name                      : constant Name_Id := N + 327;
-   Name_Unknown                        : constant Name_Id := N + 328;
-   Name_Unrestricted                   : constant Name_Id := N + 329;
-   Name_Uppercase                      : constant Name_Id := N + 330;
-   Name_User                           : constant Name_Id := N + 331;
-   Name_VAX_Float                      : constant Name_Id := N + 332;
-   Name_VMS                            : constant Name_Id := N + 333;
-   Name_Working_Storage                : constant Name_Id := N + 334;
+   Name_As_Is                          : constant Name_Id := N + 266;
+   Name_Body_File_Name                 : constant Name_Id := N + 267;
+   Name_Boolean_Entry_Barriers         : constant Name_Id := N + 268;
+   Name_Casing                         : constant Name_Id := N + 269;
+   Name_Code                           : constant Name_Id := N + 270;
+   Name_Component                      : constant Name_Id := N + 271;
+   Name_Component_Size_4               : constant Name_Id := N + 272;
+   Name_Copy                           : constant Name_Id := N + 273;
+   Name_D_Float                        : constant Name_Id := N + 274;
+   Name_Descriptor                     : constant Name_Id := N + 275;
+   Name_Dot_Replacement                : constant Name_Id := N + 276;
+   Name_Dynamic                        : constant Name_Id := N + 277;
+   Name_Entity                         : constant Name_Id := N + 278;
+   Name_External_Name                  : constant Name_Id := N + 279;
+   Name_First_Optional_Parameter       : constant Name_Id := N + 280;
+   Name_Form                           : constant Name_Id := N + 281;
+   Name_G_Float                        : constant Name_Id := N + 282;
+   Name_Gcc                            : constant Name_Id := N + 283;
+   Name_Gnat                           : constant Name_Id := N + 284;
+   Name_GPL                            : constant Name_Id := N + 285;
+   Name_IEEE_Float                     : constant Name_Id := N + 286;
+   Name_Internal                       : constant Name_Id := N + 287;
+   Name_Link_Name                      : constant Name_Id := N + 288;
+   Name_Lowercase                      : constant Name_Id := N + 289;
+   Name_Max_Entry_Queue_Depth          : constant Name_Id := N + 290;
+   Name_Max_Entry_Queue_Length         : constant Name_Id := N + 291;
+   Name_Max_Size                       : constant Name_Id := N + 292;
+   Name_Mechanism                      : constant Name_Id := N + 293;
+   Name_Mixedcase                      : constant Name_Id := N + 294;
+   Name_Modified_GPL                   : constant Name_Id := N + 295;
+   Name_Name                           : constant Name_Id := N + 296;
+   Name_NCA                            : constant Name_Id := N + 297;
+   Name_No                             : constant Name_Id := N + 298;
+   Name_On                             : constant Name_Id := N + 299;
+   Name_Parameter_Types                : constant Name_Id := N + 300;
+   Name_Reference                      : constant Name_Id := N + 301;
+   Name_No_Dynamic_Attachment          : constant Name_Id := N + 302;
+   Name_No_Dynamic_Interrupts          : constant Name_Id := N + 303;
+   Name_No_Requeue                     : constant Name_Id := N + 304;
+   Name_No_Requeue_Statements          : constant Name_Id := N + 305;
+   Name_No_Task_Attributes             : constant Name_Id := N + 306;
+   Name_No_Task_Attributes_Package     : constant Name_Id := N + 307;
+   Name_Restricted                     : constant Name_Id := N + 308;
+   Name_Result_Mechanism               : constant Name_Id := N + 309;
+   Name_Result_Type                    : constant Name_Id := N + 310;
+   Name_Runtime                        : constant Name_Id := N + 311;
+   Name_SB                             : constant Name_Id := N + 312;
+   Name_Secondary_Stack_Size           : constant Name_Id := N + 313;
+   Name_Section                        : constant Name_Id := N + 314;
+   Name_Semaphore                      : constant Name_Id := N + 315;
+   Name_Simple_Barriers                : constant Name_Id := N + 316;
+   Name_Spec_File_Name                 : constant Name_Id := N + 317;
+   Name_Static                         : constant Name_Id := N + 318;
+   Name_Stack_Size                     : constant Name_Id := N + 319;
+   Name_Subunit_File_Name              : constant Name_Id := N + 320;
+   Name_Task_Stack_Size_Default        : constant Name_Id := N + 321;
+   Name_Task_Type                      : constant Name_Id := N + 322;
+   Name_Time_Slicing_Enabled           : constant Name_Id := N + 323;
+   Name_Top_Guard                      : constant Name_Id := N + 324;
+   Name_UBA                            : constant Name_Id := N + 325;
+   Name_UBS                            : constant Name_Id := N + 326;
+   Name_UBSB                           : constant Name_Id := N + 327;
+   Name_Unit_Name                      : constant Name_Id := N + 328;
+   Name_Unknown                        : constant Name_Id := N + 329;
+   Name_Unrestricted                   : constant Name_Id := N + 330;
+   Name_Uppercase                      : constant Name_Id := N + 331;
+   Name_User                           : constant Name_Id := N + 332;
+   Name_VAX_Float                      : constant Name_Id := N + 333;
+   Name_VMS                            : constant Name_Id := N + 334;
+   Name_Working_Storage                : constant Name_Id := N + 335;
 
    --  Names of recognized attributes. The entries with the comment "Ada 83"
    --  are attributes that are defined in Ada 83, but not in Ada 95. These
@@ -603,159 +604,159 @@ package Snames is
    --  The entries marked VMS are recognized only in OpenVMS implementations
    --  of GNAT, and are treated as illegal in all other contexts.
 
-   First_Attribute_Name                : constant Name_Id := N + 335;
-   Name_Abort_Signal                   : constant Name_Id := N + 335;  -- GNAT
-   Name_Access                         : constant Name_Id := N + 336;
-   Name_Address                        : constant Name_Id := N + 337;
-   Name_Address_Size                   : constant Name_Id := N + 338;  -- GNAT
-   Name_Aft                            : constant Name_Id := N + 339;
-   Name_Alignment                      : constant Name_Id := N + 340;
-   Name_Asm_Input                      : constant Name_Id := N + 341;  -- GNAT
-   Name_Asm_Output                     : constant Name_Id := N + 342;  -- GNAT
-   Name_AST_Entry                      : constant Name_Id := N + 343;  -- VMS
-   Name_Bit                            : constant Name_Id := N + 344;  -- GNAT
-   Name_Bit_Order                      : constant Name_Id := N + 345;
-   Name_Bit_Position                   : constant Name_Id := N + 346;  -- GNAT
-   Name_Body_Version                   : constant Name_Id := N + 347;
-   Name_Callable                       : constant Name_Id := N + 348;
-   Name_Caller                         : constant Name_Id := N + 349;
-   Name_Code_Address                   : constant Name_Id := N + 350;  -- GNAT
-   Name_Component_Size                 : constant Name_Id := N + 351;
-   Name_Compose                        : constant Name_Id := N + 352;
-   Name_Constrained                    : constant Name_Id := N + 353;
-   Name_Count                          : constant Name_Id := N + 354;
-   Name_Default_Bit_Order              : constant Name_Id := N + 355; -- GNAT
-   Name_Definite                       : constant Name_Id := N + 356;
-   Name_Delta                          : constant Name_Id := N + 357;
-   Name_Denorm                         : constant Name_Id := N + 358;
-   Name_Digits                         : constant Name_Id := N + 359;
-   Name_Elaborated                     : constant Name_Id := N + 360; -- GNAT
-   Name_Emax                           : constant Name_Id := N + 361; -- Ada 83
-   Name_Enum_Rep                       : constant Name_Id := N + 362; -- GNAT
-   Name_Epsilon                        : constant Name_Id := N + 363; -- Ada 83
-   Name_Exponent                       : constant Name_Id := N + 364;
-   Name_External_Tag                   : constant Name_Id := N + 365;
-   Name_First                          : constant Name_Id := N + 366;
-   Name_First_Bit                      : constant Name_Id := N + 367;
-   Name_Fixed_Value                    : constant Name_Id := N + 368; -- GNAT
-   Name_Fore                           : constant Name_Id := N + 369;
-   Name_Has_Access_Values              : constant Name_Id := N + 370; -- GNAT
-   Name_Has_Discriminants              : constant Name_Id := N + 371; -- GNAT
-   Name_Identity                       : constant Name_Id := N + 372;
-   Name_Img                            : constant Name_Id := N + 373; -- GNAT
-   Name_Integer_Value                  : constant Name_Id := N + 374; -- GNAT
-   Name_Large                          : constant Name_Id := N + 375; -- Ada 83
-   Name_Last                           : constant Name_Id := N + 376;
-   Name_Last_Bit                       : constant Name_Id := N + 377;
-   Name_Leading_Part                   : constant Name_Id := N + 378;
-   Name_Length                         : constant Name_Id := N + 379;
-   Name_Machine_Emax                   : constant Name_Id := N + 380;
-   Name_Machine_Emin                   : constant Name_Id := N + 381;
-   Name_Machine_Mantissa               : constant Name_Id := N + 382;
-   Name_Machine_Overflows              : constant Name_Id := N + 383;
-   Name_Machine_Radix                  : constant Name_Id := N + 384;
-   Name_Machine_Rounds                 : constant Name_Id := N + 385;
-   Name_Machine_Size                   : constant Name_Id := N + 386; -- GNAT
-   Name_Mantissa                       : constant Name_Id := N + 387; -- Ada 83
-   Name_Max_Size_In_Storage_Elements   : constant Name_Id := N + 388;
-   Name_Maximum_Alignment              : constant Name_Id := N + 389; -- GNAT
-   Name_Mechanism_Code                 : constant Name_Id := N + 390; -- GNAT
-   Name_Model_Emin                     : constant Name_Id := N + 391;
-   Name_Model_Epsilon                  : constant Name_Id := N + 392;
-   Name_Model_Mantissa                 : constant Name_Id := N + 393;
-   Name_Model_Small                    : constant Name_Id := N + 394;
-   Name_Modulus                        : constant Name_Id := N + 395;
-   Name_Null_Parameter                 : constant Name_Id := N + 396; -- GNAT
-   Name_Object_Size                    : constant Name_Id := N + 397; -- GNAT
-   Name_Partition_ID                   : constant Name_Id := N + 398;
-   Name_Passed_By_Reference            : constant Name_Id := N + 399; -- GNAT
-   Name_Pool_Address                   : constant Name_Id := N + 400;
-   Name_Pos                            : constant Name_Id := N + 401;
-   Name_Position                       : constant Name_Id := N + 402;
-   Name_Range                          : constant Name_Id := N + 403;
-   Name_Range_Length                   : constant Name_Id := N + 404; -- GNAT
-   Name_Round                          : constant Name_Id := N + 405;
-   Name_Safe_Emax                      : constant Name_Id := N + 406; -- Ada 83
-   Name_Safe_First                     : constant Name_Id := N + 407;
-   Name_Safe_Large                     : constant Name_Id := N + 408; -- Ada 83
-   Name_Safe_Last                      : constant Name_Id := N + 409;
-   Name_Safe_Small                     : constant Name_Id := N + 410; -- Ada 83
-   Name_Scale                          : constant Name_Id := N + 411;
-   Name_Scaling                        : constant Name_Id := N + 412;
-   Name_Signed_Zeros                   : constant Name_Id := N + 413;
-   Name_Size                           : constant Name_Id := N + 414;
-   Name_Small                          : constant Name_Id := N + 415;
-   Name_Storage_Size                   : constant Name_Id := N + 416;
-   Name_Storage_Unit                   : constant Name_Id := N + 417; -- GNAT
-   Name_Tag                            : constant Name_Id := N + 418;
-   Name_Target_Name                    : constant Name_Id := N + 419; -- GNAT
-   Name_Terminated                     : constant Name_Id := N + 420;
-   Name_To_Address                     : constant Name_Id := N + 421; -- GNAT
-   Name_Type_Class                     : constant Name_Id := N + 422; -- GNAT
-   Name_UET_Address                    : constant Name_Id := N + 423; -- GNAT
-   Name_Unbiased_Rounding              : constant Name_Id := N + 424;
-   Name_Unchecked_Access               : constant Name_Id := N + 425;
-   Name_Unconstrained_Array            : constant Name_Id := N + 426;
-   Name_Universal_Literal_String       : constant Name_Id := N + 427; -- GNAT
-   Name_Unrestricted_Access            : constant Name_Id := N + 428; -- GNAT
-   Name_VADS_Size                      : constant Name_Id := N + 429; -- GNAT
-   Name_Val                            : constant Name_Id := N + 430;
-   Name_Valid                          : constant Name_Id := N + 431;
-   Name_Value_Size                     : constant Name_Id := N + 432; -- GNAT
-   Name_Version                        : constant Name_Id := N + 433;
-   Name_Wchar_T_Size                   : constant Name_Id := N + 434; -- GNAT
-   Name_Wide_Width                     : constant Name_Id := N + 435;
-   Name_Width                          : constant Name_Id := N + 436;
-   Name_Word_Size                      : constant Name_Id := N + 437; -- GNAT
+   First_Attribute_Name                : constant Name_Id := N + 336;
+   Name_Abort_Signal                   : constant Name_Id := N + 336;  -- GNAT
+   Name_Access                         : constant Name_Id := N + 337;
+   Name_Address                        : constant Name_Id := N + 338;
+   Name_Address_Size                   : constant Name_Id := N + 339;  -- GNAT
+   Name_Aft                            : constant Name_Id := N + 340;
+   Name_Alignment                      : constant Name_Id := N + 341;
+   Name_Asm_Input                      : constant Name_Id := N + 342;  -- GNAT
+   Name_Asm_Output                     : constant Name_Id := N + 343;  -- GNAT
+   Name_AST_Entry                      : constant Name_Id := N + 344;  -- VMS
+   Name_Bit                            : constant Name_Id := N + 345;  -- GNAT
+   Name_Bit_Order                      : constant Name_Id := N + 346;
+   Name_Bit_Position                   : constant Name_Id := N + 347;  -- GNAT
+   Name_Body_Version                   : constant Name_Id := N + 348;
+   Name_Callable                       : constant Name_Id := N + 349;
+   Name_Caller                         : constant Name_Id := N + 350;
+   Name_Code_Address                   : constant Name_Id := N + 351;  -- GNAT
+   Name_Component_Size                 : constant Name_Id := N + 352;
+   Name_Compose                        : constant Name_Id := N + 353;
+   Name_Constrained                    : constant Name_Id := N + 354;
+   Name_Count                          : constant Name_Id := N + 355;
+   Name_Default_Bit_Order              : constant Name_Id := N + 356; -- GNAT
+   Name_Definite                       : constant Name_Id := N + 357;
+   Name_Delta                          : constant Name_Id := N + 358;
+   Name_Denorm                         : constant Name_Id := N + 359;
+   Name_Digits                         : constant Name_Id := N + 360;
+   Name_Elaborated                     : constant Name_Id := N + 361; -- GNAT
+   Name_Emax                           : constant Name_Id := N + 362; -- Ada 83
+   Name_Enum_Rep                       : constant Name_Id := N + 363; -- GNAT
+   Name_Epsilon                        : constant Name_Id := N + 364; -- Ada 83
+   Name_Exponent                       : constant Name_Id := N + 365;
+   Name_External_Tag                   : constant Name_Id := N + 366;
+   Name_First                          : constant Name_Id := N + 367;
+   Name_First_Bit                      : constant Name_Id := N + 368;
+   Name_Fixed_Value                    : constant Name_Id := N + 369; -- GNAT
+   Name_Fore                           : constant Name_Id := N + 370;
+   Name_Has_Access_Values              : constant Name_Id := N + 371; -- GNAT
+   Name_Has_Discriminants              : constant Name_Id := N + 372; -- GNAT
+   Name_Identity                       : constant Name_Id := N + 373;
+   Name_Img                            : constant Name_Id := N + 374; -- GNAT
+   Name_Integer_Value                  : constant Name_Id := N + 375; -- GNAT
+   Name_Large                          : constant Name_Id := N + 376; -- Ada 83
+   Name_Last                           : constant Name_Id := N + 377;
+   Name_Last_Bit                       : constant Name_Id := N + 378;
+   Name_Leading_Part                   : constant Name_Id := N + 379;
+   Name_Length                         : constant Name_Id := N + 380;
+   Name_Machine_Emax                   : constant Name_Id := N + 381;
+   Name_Machine_Emin                   : constant Name_Id := N + 382;
+   Name_Machine_Mantissa               : constant Name_Id := N + 383;
+   Name_Machine_Overflows              : constant Name_Id := N + 384;
+   Name_Machine_Radix                  : constant Name_Id := N + 385;
+   Name_Machine_Rounds                 : constant Name_Id := N + 386;
+   Name_Machine_Size                   : constant Name_Id := N + 387; -- GNAT
+   Name_Mantissa                       : constant Name_Id := N + 388; -- Ada 83
+   Name_Max_Size_In_Storage_Elements   : constant Name_Id := N + 389;
+   Name_Maximum_Alignment              : constant Name_Id := N + 390; -- GNAT
+   Name_Mechanism_Code                 : constant Name_Id := N + 391; -- GNAT
+   Name_Model_Emin                     : constant Name_Id := N + 392;
+   Name_Model_Epsilon                  : constant Name_Id := N + 393;
+   Name_Model_Mantissa                 : constant Name_Id := N + 394;
+   Name_Model_Small                    : constant Name_Id := N + 395;
+   Name_Modulus                        : constant Name_Id := N + 396;
+   Name_Null_Parameter                 : constant Name_Id := N + 397; -- GNAT
+   Name_Object_Size                    : constant Name_Id := N + 398; -- GNAT
+   Name_Partition_ID                   : constant Name_Id := N + 399;
+   Name_Passed_By_Reference            : constant Name_Id := N + 400; -- GNAT
+   Name_Pool_Address                   : constant Name_Id := N + 401;
+   Name_Pos                            : constant Name_Id := N + 402;
+   Name_Position                       : constant Name_Id := N + 403;
+   Name_Range                          : constant Name_Id := N + 404;
+   Name_Range_Length                   : constant Name_Id := N + 405; -- GNAT
+   Name_Round                          : constant Name_Id := N + 406;
+   Name_Safe_Emax                      : constant Name_Id := N + 407; -- Ada 83
+   Name_Safe_First                     : constant Name_Id := N + 408;
+   Name_Safe_Large                     : constant Name_Id := N + 409; -- Ada 83
+   Name_Safe_Last                      : constant Name_Id := N + 410;
+   Name_Safe_Small                     : constant Name_Id := N + 411; -- Ada 83
+   Name_Scale                          : constant Name_Id := N + 412;
+   Name_Scaling                        : constant Name_Id := N + 413;
+   Name_Signed_Zeros                   : constant Name_Id := N + 414;
+   Name_Size                           : constant Name_Id := N + 415;
+   Name_Small                          : constant Name_Id := N + 416;
+   Name_Storage_Size                   : constant Name_Id := N + 417;
+   Name_Storage_Unit                   : constant Name_Id := N + 418; -- GNAT
+   Name_Tag                            : constant Name_Id := N + 419;
+   Name_Target_Name                    : constant Name_Id := N + 420; -- GNAT
+   Name_Terminated                     : constant Name_Id := N + 421;
+   Name_To_Address                     : constant Name_Id := N + 422; -- GNAT
+   Name_Type_Class                     : constant Name_Id := N + 423; -- GNAT
+   Name_UET_Address                    : constant Name_Id := N + 424; -- GNAT
+   Name_Unbiased_Rounding              : constant Name_Id := N + 425;
+   Name_Unchecked_Access               : constant Name_Id := N + 426;
+   Name_Unconstrained_Array            : constant Name_Id := N + 427;
+   Name_Universal_Literal_String       : constant Name_Id := N + 428; -- GNAT
+   Name_Unrestricted_Access            : constant Name_Id := N + 429; -- GNAT
+   Name_VADS_Size                      : constant Name_Id := N + 430; -- GNAT
+   Name_Val                            : constant Name_Id := N + 431;
+   Name_Valid                          : constant Name_Id := N + 432;
+   Name_Value_Size                     : constant Name_Id := N + 433; -- GNAT
+   Name_Version                        : constant Name_Id := N + 434;
+   Name_Wchar_T_Size                   : constant Name_Id := N + 435; -- GNAT
+   Name_Wide_Width                     : constant Name_Id := N + 436;
+   Name_Width                          : constant Name_Id := N + 437;
+   Name_Word_Size                      : constant Name_Id := N + 438; -- GNAT
 
    --  Attributes that designate attributes returning renamable functions,
    --  i.e. functions that return other than a universal value.
 
-   First_Renamable_Function_Attribute  : constant Name_Id := N + 438;
-   Name_Adjacent                       : constant Name_Id := N + 438;
-   Name_Ceiling                        : constant Name_Id := N + 439;
-   Name_Copy_Sign                      : constant Name_Id := N + 440;
-   Name_Floor                          : constant Name_Id := N + 441;
-   Name_Fraction                       : constant Name_Id := N + 442;
-   Name_Image                          : constant Name_Id := N + 443;
-   Name_Input                          : constant Name_Id := N + 444;
-   Name_Machine                        : constant Name_Id := N + 445;
-   Name_Max                            : constant Name_Id := N + 446;
-   Name_Min                            : constant Name_Id := N + 447;
-   Name_Model                          : constant Name_Id := N + 448;
-   Name_Pred                           : constant Name_Id := N + 449;
-   Name_Remainder                      : constant Name_Id := N + 450;
-   Name_Rounding                       : constant Name_Id := N + 451;
-   Name_Succ                           : constant Name_Id := N + 452;
-   Name_Truncation                     : constant Name_Id := N + 453;
-   Name_Value                          : constant Name_Id := N + 454;
-   Name_Wide_Image                     : constant Name_Id := N + 455;
-   Name_Wide_Value                     : constant Name_Id := N + 456;
-   Last_Renamable_Function_Attribute   : constant Name_Id := N + 456;
+   First_Renamable_Function_Attribute  : constant Name_Id := N + 439;
+   Name_Adjacent                       : constant Name_Id := N + 439;
+   Name_Ceiling                        : constant Name_Id := N + 440;
+   Name_Copy_Sign                      : constant Name_Id := N + 441;
+   Name_Floor                          : constant Name_Id := N + 442;
+   Name_Fraction                       : constant Name_Id := N + 443;
+   Name_Image                          : constant Name_Id := N + 444;
+   Name_Input                          : constant Name_Id := N + 445;
+   Name_Machine                        : constant Name_Id := N + 446;
+   Name_Max                            : constant Name_Id := N + 447;
+   Name_Min                            : constant Name_Id := N + 448;
+   Name_Model                          : constant Name_Id := N + 449;
+   Name_Pred                           : constant Name_Id := N + 450;
+   Name_Remainder                      : constant Name_Id := N + 451;
+   Name_Rounding                       : constant Name_Id := N + 452;
+   Name_Succ                           : constant Name_Id := N + 453;
+   Name_Truncation                     : constant Name_Id := N + 454;
+   Name_Value                          : constant Name_Id := N + 455;
+   Name_Wide_Image                     : constant Name_Id := N + 456;
+   Name_Wide_Value                     : constant Name_Id := N + 457;
+   Last_Renamable_Function_Attribute   : constant Name_Id := N + 457;
 
    --  Attributes that designate procedures
 
-   First_Procedure_Attribute           : constant Name_Id := N + 457;
-   Name_Output                         : constant Name_Id := N + 457;
-   Name_Read                           : constant Name_Id := N + 458;
-   Name_Write                          : constant Name_Id := N + 459;
-   Last_Procedure_Attribute            : constant Name_Id := N + 459;
+   First_Procedure_Attribute           : constant Name_Id := N + 458;
+   Name_Output                         : constant Name_Id := N + 458;
+   Name_Read                           : constant Name_Id := N + 459;
+   Name_Write                          : constant Name_Id := N + 460;
+   Last_Procedure_Attribute            : constant Name_Id := N + 460;
 
    --  Remaining attributes are ones that return entities
 
-   First_Entity_Attribute_Name         : constant Name_Id := N + 460;
-   Name_Elab_Body                      : constant Name_Id := N + 460; -- GNAT
-   Name_Elab_Spec                      : constant Name_Id := N + 461; -- GNAT
-   Name_Storage_Pool                   : constant Name_Id := N + 462;
+   First_Entity_Attribute_Name         : constant Name_Id := N + 461;
+   Name_Elab_Body                      : constant Name_Id := N + 461; -- GNAT
+   Name_Elab_Spec                      : constant Name_Id := N + 462; -- GNAT
+   Name_Storage_Pool                   : constant Name_Id := N + 463;
 
    --  These attributes are the ones that return types
 
-   First_Type_Attribute_Name           : constant Name_Id := N + 463;
-   Name_Base                           : constant Name_Id := N + 463;
-   Name_Class                          : constant Name_Id := N + 464;
-   Last_Type_Attribute_Name            : constant Name_Id := N + 464;
-   Last_Entity_Attribute_Name          : constant Name_Id := N + 464;
-   Last_Attribute_Name                 : constant Name_Id := N + 464;
+   First_Type_Attribute_Name           : constant Name_Id := N + 464;
+   Name_Base                           : constant Name_Id := N + 464;
+   Name_Class                          : constant Name_Id := N + 465;
+   Last_Type_Attribute_Name            : constant Name_Id := N + 465;
+   Last_Entity_Attribute_Name          : constant Name_Id := N + 465;
+   Last_Attribute_Name                 : constant Name_Id := N + 465;
 
    --  Names of recognized locking policy identifiers
 
@@ -763,10 +764,10 @@ package Snames is
    --  name (e.g. C for Ceiling_Locking). If new policy names are added,
    --  the first character must be distinct.
 
-   First_Locking_Policy_Name           : constant Name_Id := N + 465;
-   Name_Ceiling_Locking                : constant Name_Id := N + 465;
-   Name_Inheritance_Locking            : constant Name_Id := N + 466;
-   Last_Locking_Policy_Name            : constant Name_Id := N + 466;
+   First_Locking_Policy_Name           : constant Name_Id := N + 466;
+   Name_Ceiling_Locking                : constant Name_Id := N + 466;
+   Name_Inheritance_Locking            : constant Name_Id := N + 467;
+   Last_Locking_Policy_Name            : constant Name_Id := N + 467;
 
    --  Names of recognized queuing policy identifiers.
 
@@ -774,10 +775,10 @@ package Snames is
    --  name (e.g. F for FIFO_Queuing). If new policy names are added,
    --  the first character must be distinct.
 
-   First_Queuing_Policy_Name           : constant Name_Id := N + 467;
-   Name_FIFO_Queuing                   : constant Name_Id := N + 467;
-   Name_Priority_Queuing               : constant Name_Id := N + 468;
-   Last_Queuing_Policy_Name            : constant Name_Id := N + 468;
+   First_Queuing_Policy_Name           : constant Name_Id := N + 468;
+   Name_FIFO_Queuing                   : constant Name_Id := N + 468;
+   Name_Priority_Queuing               : constant Name_Id := N + 469;
+   Last_Queuing_Policy_Name            : constant Name_Id := N + 469;
 
    --  Names of recognized task dispatching policy identifiers
 
@@ -785,194 +786,194 @@ package Snames is
    --  name (e.g. F for FIFO_WIthinn_Priorities). If new policy names
    --  are added, the first character must be distinct.
 
-   First_Task_Dispatching_Policy_Name  : constant Name_Id := N + 469;
-   Name_FIFO_Within_Priorities         : constant Name_Id := N + 469;
-   Last_Task_Dispatching_Policy_Name   : constant Name_Id := N + 469;
+   First_Task_Dispatching_Policy_Name  : constant Name_Id := N + 470;
+   Name_FIFO_Within_Priorities         : constant Name_Id := N + 470;
+   Last_Task_Dispatching_Policy_Name   : constant Name_Id := N + 470;
 
    --  Names of recognized checks for pragma Suppress
 
-   First_Check_Name                    : constant Name_Id := N + 470;
-   Name_Access_Check                   : constant Name_Id := N + 470;
-   Name_Accessibility_Check            : constant Name_Id := N + 471;
-   Name_Discriminant_Check             : constant Name_Id := N + 472;
-   Name_Division_Check                 : constant Name_Id := N + 473;
-   Name_Elaboration_Check              : constant Name_Id := N + 474;
-   Name_Index_Check                    : constant Name_Id := N + 475;
-   Name_Length_Check                   : constant Name_Id := N + 476;
-   Name_Overflow_Check                 : constant Name_Id := N + 477;
-   Name_Range_Check                    : constant Name_Id := N + 478;
-   Name_Storage_Check                  : constant Name_Id := N + 479;
-   Name_Tag_Check                      : constant Name_Id := N + 480;
-   Name_All_Checks                     : constant Name_Id := N + 481;
-   Last_Check_Name                     : constant Name_Id := N + 481;
+   First_Check_Name                    : constant Name_Id := N + 471;
+   Name_Access_Check                   : constant Name_Id := N + 471;
+   Name_Accessibility_Check            : constant Name_Id := N + 472;
+   Name_Discriminant_Check             : constant Name_Id := N + 473;
+   Name_Division_Check                 : constant Name_Id := N + 474;
+   Name_Elaboration_Check              : constant Name_Id := N + 475;
+   Name_Index_Check                    : constant Name_Id := N + 476;
+   Name_Length_Check                   : constant Name_Id := N + 477;
+   Name_Overflow_Check                 : constant Name_Id := N + 478;
+   Name_Range_Check                    : constant Name_Id := N + 479;
+   Name_Storage_Check                  : constant Name_Id := N + 480;
+   Name_Tag_Check                      : constant Name_Id := N + 481;
+   Name_All_Checks                     : constant Name_Id := N + 482;
+   Last_Check_Name                     : constant Name_Id := N + 482;
 
    --  Names corresponding to reserved keywords, excluding those already
    --  declared in the attribute list (Access, Delta, Digits, Range).
 
-   Name_Abort                          : constant Name_Id := N + 482;
-   Name_Abs                            : constant Name_Id := N + 483;
-   Name_Accept                         : constant Name_Id := N + 484;
-   Name_And                            : constant Name_Id := N + 485;
-   Name_All                            : constant Name_Id := N + 486;
-   Name_Array                          : constant Name_Id := N + 487;
-   Name_At                             : constant Name_Id := N + 488;
-   Name_Begin                          : constant Name_Id := N + 489;
-   Name_Body                           : constant Name_Id := N + 490;
-   Name_Case                           : constant Name_Id := N + 491;
-   Name_Constant                       : constant Name_Id := N + 492;
-   Name_Declare                        : constant Name_Id := N + 493;
-   Name_Delay                          : constant Name_Id := N + 494;
-   Name_Do                             : constant Name_Id := N + 495;
-   Name_Else                           : constant Name_Id := N + 496;
-   Name_Elsif                          : constant Name_Id := N + 497;
-   Name_End                            : constant Name_Id := N + 498;
-   Name_Entry                          : constant Name_Id := N + 499;
-   Name_Exception                      : constant Name_Id := N + 500;
-   Name_Exit                           : constant Name_Id := N + 501;
-   Name_For                            : constant Name_Id := N + 502;
-   Name_Function                       : constant Name_Id := N + 503;
-   Name_Generic                        : constant Name_Id := N + 504;
-   Name_Goto                           : constant Name_Id := N + 505;
-   Name_If                             : constant Name_Id := N + 506;
-   Name_In                             : constant Name_Id := N + 507;
-   Name_Is                             : constant Name_Id := N + 508;
-   Name_Limited                        : constant Name_Id := N + 509;
-   Name_Loop                           : constant Name_Id := N + 510;
-   Name_Mod                            : constant Name_Id := N + 511;
-   Name_New                            : constant Name_Id := N + 512;
-   Name_Not                            : constant Name_Id := N + 513;
-   Name_Null                           : constant Name_Id := N + 514;
-   Name_Of                             : constant Name_Id := N + 515;
-   Name_Or                             : constant Name_Id := N + 516;
-   Name_Others                         : constant Name_Id := N + 517;
-   Name_Out                            : constant Name_Id := N + 518;
-   Name_Package                        : constant Name_Id := N + 519;
-   Name_Pragma                         : constant Name_Id := N + 520;
-   Name_Private                        : constant Name_Id := N + 521;
-   Name_Procedure                      : constant Name_Id := N + 522;
-   Name_Raise                          : constant Name_Id := N + 523;
-   Name_Record                         : constant Name_Id := N + 524;
-   Name_Rem                            : constant Name_Id := N + 525;
-   Name_Renames                        : constant Name_Id := N + 526;
-   Name_Return                         : constant Name_Id := N + 527;
-   Name_Reverse                        : constant Name_Id := N + 528;
-   Name_Select                         : constant Name_Id := N + 529;
-   Name_Separate                       : constant Name_Id := N + 530;
-   Name_Subtype                        : constant Name_Id := N + 531;
-   Name_Task                           : constant Name_Id := N + 532;
-   Name_Terminate                      : constant Name_Id := N + 533;
-   Name_Then                           : constant Name_Id := N + 534;
-   Name_Type                           : constant Name_Id := N + 535;
-   Name_Use                            : constant Name_Id := N + 536;
-   Name_When                           : constant Name_Id := N + 537;
-   Name_While                          : constant Name_Id := N + 538;
-   Name_With                           : constant Name_Id := N + 539;
-   Name_Xor                            : constant Name_Id := N + 540;
+   Name_Abort                          : constant Name_Id := N + 483;
+   Name_Abs                            : constant Name_Id := N + 484;
+   Name_Accept                         : constant Name_Id := N + 485;
+   Name_And                            : constant Name_Id := N + 486;
+   Name_All                            : constant Name_Id := N + 487;
+   Name_Array                          : constant Name_Id := N + 488;
+   Name_At                             : constant Name_Id := N + 489;
+   Name_Begin                          : constant Name_Id := N + 490;
+   Name_Body                           : constant Name_Id := N + 491;
+   Name_Case                           : constant Name_Id := N + 492;
+   Name_Constant                       : constant Name_Id := N + 493;
+   Name_Declare                        : constant Name_Id := N + 494;
+   Name_Delay                          : constant Name_Id := N + 495;
+   Name_Do                             : constant Name_Id := N + 496;
+   Name_Else                           : constant Name_Id := N + 497;
+   Name_Elsif                          : constant Name_Id := N + 498;
+   Name_End                            : constant Name_Id := N + 499;
+   Name_Entry                          : constant Name_Id := N + 500;
+   Name_Exception                      : constant Name_Id := N + 501;
+   Name_Exit                           : constant Name_Id := N + 502;
+   Name_For                            : constant Name_Id := N + 503;
+   Name_Function                       : constant Name_Id := N + 504;
+   Name_Generic                        : constant Name_Id := N + 505;
+   Name_Goto                           : constant Name_Id := N + 506;
+   Name_If                             : constant Name_Id := N + 507;
+   Name_In                             : constant Name_Id := N + 508;
+   Name_Is                             : constant Name_Id := N + 509;
+   Name_Limited                        : constant Name_Id := N + 510;
+   Name_Loop                           : constant Name_Id := N + 511;
+   Name_Mod                            : constant Name_Id := N + 512;
+   Name_New                            : constant Name_Id := N + 513;
+   Name_Not                            : constant Name_Id := N + 514;
+   Name_Null                           : constant Name_Id := N + 515;
+   Name_Of                             : constant Name_Id := N + 516;
+   Name_Or                             : constant Name_Id := N + 517;
+   Name_Others                         : constant Name_Id := N + 518;
+   Name_Out                            : constant Name_Id := N + 519;
+   Name_Package                        : constant Name_Id := N + 520;
+   Name_Pragma                         : constant Name_Id := N + 521;
+   Name_Private                        : constant Name_Id := N + 522;
+   Name_Procedure                      : constant Name_Id := N + 523;
+   Name_Raise                          : constant Name_Id := N + 524;
+   Name_Record                         : constant Name_Id := N + 525;
+   Name_Rem                            : constant Name_Id := N + 526;
+   Name_Renames                        : constant Name_Id := N + 527;
+   Name_Return                         : constant Name_Id := N + 528;
+   Name_Reverse                        : constant Name_Id := N + 529;
+   Name_Select                         : constant Name_Id := N + 530;
+   Name_Separate                       : constant Name_Id := N + 531;
+   Name_Subtype                        : constant Name_Id := N + 532;
+   Name_Task                           : constant Name_Id := N + 533;
+   Name_Terminate                      : constant Name_Id := N + 534;
+   Name_Then                           : constant Name_Id := N + 535;
+   Name_Type                           : constant Name_Id := N + 536;
+   Name_Use                            : constant Name_Id := N + 537;
+   Name_When                           : constant Name_Id := N + 538;
+   Name_While                          : constant Name_Id := N + 539;
+   Name_With                           : constant Name_Id := N + 540;
+   Name_Xor                            : constant Name_Id := N + 541;
 
    --  Names of intrinsic subprograms
 
    --  Note: Asm is missing from this list, since Asm is a legitimate
    --  convention name. So is To_Adress, which is a GNAT attribute.
 
-   First_Intrinsic_Name                : constant Name_Id := N + 541;
-   Name_Divide                         : constant Name_Id := N + 541;
-   Name_Enclosing_Entity               : constant Name_Id := N + 542;
-   Name_Exception_Information          : constant Name_Id := N + 543;
-   Name_Exception_Message              : constant Name_Id := N + 544;
-   Name_Exception_Name                 : constant Name_Id := N + 545;
-   Name_File                           : constant Name_Id := N + 546;
-   Name_Import_Address                 : constant Name_Id := N + 547;
-   Name_Import_Largest_Value           : constant Name_Id := N + 548;
-   Name_Import_Value                   : constant Name_Id := N + 549;
-   Name_Is_Negative                    : constant Name_Id := N + 550;
-   Name_Line                           : constant Name_Id := N + 551;
-   Name_Rotate_Left                    : constant Name_Id := N + 552;
-   Name_Rotate_Right                   : constant Name_Id := N + 553;
-   Name_Shift_Left                     : constant Name_Id := N + 554;
-   Name_Shift_Right                    : constant Name_Id := N + 555;
-   Name_Shift_Right_Arithmetic         : constant Name_Id := N + 556;
-   Name_Source_Location                : constant Name_Id := N + 557;
-   Name_Unchecked_Conversion           : constant Name_Id := N + 558;
-   Name_Unchecked_Deallocation         : constant Name_Id := N + 559;
-   Name_To_Pointer                     : constant Name_Id := N + 560;
-   Last_Intrinsic_Name                 : constant Name_Id := N + 560;
+   First_Intrinsic_Name                : constant Name_Id := N + 542;
+   Name_Divide                         : constant Name_Id := N + 542;
+   Name_Enclosing_Entity               : constant Name_Id := N + 543;
+   Name_Exception_Information          : constant Name_Id := N + 544;
+   Name_Exception_Message              : constant Name_Id := N + 545;
+   Name_Exception_Name                 : constant Name_Id := N + 546;
+   Name_File                           : constant Name_Id := N + 547;
+   Name_Import_Address                 : constant Name_Id := N + 548;
+   Name_Import_Largest_Value           : constant Name_Id := N + 549;
+   Name_Import_Value                   : constant Name_Id := N + 550;
+   Name_Is_Negative                    : constant Name_Id := N + 551;
+   Name_Line                           : constant Name_Id := N + 552;
+   Name_Rotate_Left                    : constant Name_Id := N + 553;
+   Name_Rotate_Right                   : constant Name_Id := N + 554;
+   Name_Shift_Left                     : constant Name_Id := N + 555;
+   Name_Shift_Right                    : constant Name_Id := N + 556;
+   Name_Shift_Right_Arithmetic         : constant Name_Id := N + 557;
+   Name_Source_Location                : constant Name_Id := N + 558;
+   Name_Unchecked_Conversion           : constant Name_Id := N + 559;
+   Name_Unchecked_Deallocation         : constant Name_Id := N + 560;
+   Name_To_Pointer                     : constant Name_Id := N + 561;
+   Last_Intrinsic_Name                 : constant Name_Id := N + 561;
 
    --  Reserved words used only in Ada 95
 
-   First_95_Reserved_Word              : constant Name_Id := N + 561;
-   Name_Abstract                       : constant Name_Id := N + 561;
-   Name_Aliased                        : constant Name_Id := N + 562;
-   Name_Protected                      : constant Name_Id := N + 563;
-   Name_Until                          : constant Name_Id := N + 564;
-   Name_Requeue                        : constant Name_Id := N + 565;
-   Name_Tagged                         : constant Name_Id := N + 566;
-   Last_95_Reserved_Word               : constant Name_Id := N + 566;
+   First_95_Reserved_Word              : constant Name_Id := N + 562;
+   Name_Abstract                       : constant Name_Id := N + 562;
+   Name_Aliased                        : constant Name_Id := N + 563;
+   Name_Protected                      : constant Name_Id := N + 564;
+   Name_Until                          : constant Name_Id := N + 565;
+   Name_Requeue                        : constant Name_Id := N + 566;
+   Name_Tagged                         : constant Name_Id := N + 567;
+   Last_95_Reserved_Word               : constant Name_Id := N + 567;
 
    subtype Ada_95_Reserved_Words is
      Name_Id range First_95_Reserved_Word .. Last_95_Reserved_Word;
 
    --  Miscellaneous names used in semantic checking
 
-   Name_Raise_Exception                : constant Name_Id := N + 567;
+   Name_Raise_Exception                : constant Name_Id := N + 568;
 
    --  Additional reserved words in GNAT Project Files
    --  Note that Name_External is already previously declared
 
-   Name_Binder                         : constant Name_Id := N + 568;
-   Name_Body_Suffix                    : constant Name_Id := N + 569;
-   Name_Builder                        : constant Name_Id := N + 570;
-   Name_Compiler                       : constant Name_Id := N + 571;
-   Name_Cross_Reference                : constant Name_Id := N + 572;
-   Name_Default_Switches               : constant Name_Id := N + 573;
-   Name_Exec_Dir                       : constant Name_Id := N + 574;
-   Name_Executable                     : constant Name_Id := N + 575;
-   Name_Executable_Suffix              : constant Name_Id := N + 576;
-   Name_Extends                        : constant Name_Id := N + 577;
-   Name_Finder                         : constant Name_Id := N + 578;
-   Name_Global_Configuration_Pragmas   : constant Name_Id := N + 579;
-   Name_Gnatls                         : constant Name_Id := N + 580;
-   Name_Gnatstub                       : constant Name_Id := N + 581;
-   Name_Implementation                 : constant Name_Id := N + 582;
-   Name_Implementation_Exceptions      : constant Name_Id := N + 583;
-   Name_Implementation_Suffix          : constant Name_Id := N + 584;
-   Name_Languages                      : constant Name_Id := N + 585;
-   Name_Library_Dir                    : constant Name_Id := N + 586;
-   Name_Library_Auto_Init              : constant Name_Id := N + 587;
-   Name_Library_GCC                    : constant Name_Id := N + 588;
-   Name_Library_Interface              : constant Name_Id := N + 589;
-   Name_Library_Kind                   : constant Name_Id := N + 590;
-   Name_Library_Name                   : constant Name_Id := N + 591;
-   Name_Library_Options                : constant Name_Id := N + 592;
-   Name_Library_Reference_Symbol_File  : constant Name_Id := N + 593;
-   Name_Library_Src_Dir                : constant Name_Id := N + 594;
-   Name_Library_Symbol_File            : constant Name_Id := N + 595;
-   Name_Library_Symbol_Policy          : constant Name_Id := N + 596;
-   Name_Library_Version                : constant Name_Id := N + 597;
-   Name_Linker                         : constant Name_Id := N + 598;
-   Name_Local_Configuration_Pragmas    : constant Name_Id := N + 599;
-   Name_Locally_Removed_Files          : constant Name_Id := N + 600;
-   Name_Metrics                        : constant Name_Id := N + 601;
-   Name_Naming                         : constant Name_Id := N + 602;
-   Name_Object_Dir                     : constant Name_Id := N + 603;
-   Name_Pretty_Printer                 : constant Name_Id := N + 604;
-   Name_Project                        : constant Name_Id := N + 605;
-   Name_Separate_Suffix                : constant Name_Id := N + 606;
-   Name_Source_Dirs                    : constant Name_Id := N + 607;
-   Name_Source_Files                   : constant Name_Id := N + 608;
-   Name_Source_List_File               : constant Name_Id := N + 609;
-   Name_Spec                           : constant Name_Id := N + 610;
-   Name_Spec_Suffix                    : constant Name_Id := N + 611;
-   Name_Specification                  : constant Name_Id := N + 612;
-   Name_Specification_Exceptions       : constant Name_Id := N + 613;
-   Name_Specification_Suffix           : constant Name_Id := N + 614;
-   Name_Switches                       : constant Name_Id := N + 615;
+   Name_Binder                         : constant Name_Id := N + 569;
+   Name_Body_Suffix                    : constant Name_Id := N + 570;
+   Name_Builder                        : constant Name_Id := N + 571;
+   Name_Compiler                       : constant Name_Id := N + 572;
+   Name_Cross_Reference                : constant Name_Id := N + 573;
+   Name_Default_Switches               : constant Name_Id := N + 574;
+   Name_Exec_Dir                       : constant Name_Id := N + 575;
+   Name_Executable                     : constant Name_Id := N + 576;
+   Name_Executable_Suffix              : constant Name_Id := N + 577;
+   Name_Extends                        : constant Name_Id := N + 578;
+   Name_Finder                         : constant Name_Id := N + 579;
+   Name_Global_Configuration_Pragmas   : constant Name_Id := N + 580;
+   Name_Gnatls                         : constant Name_Id := N + 581;
+   Name_Gnatstub                       : constant Name_Id := N + 582;
+   Name_Implementation                 : constant Name_Id := N + 583;
+   Name_Implementation_Exceptions      : constant Name_Id := N + 584;
+   Name_Implementation_Suffix          : constant Name_Id := N + 585;
+   Name_Languages                      : constant Name_Id := N + 586;
+   Name_Library_Dir                    : constant Name_Id := N + 587;
+   Name_Library_Auto_Init              : constant Name_Id := N + 588;
+   Name_Library_GCC                    : constant Name_Id := N + 589;
+   Name_Library_Interface              : constant Name_Id := N + 590;
+   Name_Library_Kind                   : constant Name_Id := N + 591;
+   Name_Library_Name                   : constant Name_Id := N + 592;
+   Name_Library_Options                : constant Name_Id := N + 593;
+   Name_Library_Reference_Symbol_File  : constant Name_Id := N + 594;
+   Name_Library_Src_Dir                : constant Name_Id := N + 595;
+   Name_Library_Symbol_File            : constant Name_Id := N + 596;
+   Name_Library_Symbol_Policy          : constant Name_Id := N + 597;
+   Name_Library_Version                : constant Name_Id := N + 598;
+   Name_Linker                         : constant Name_Id := N + 599;
+   Name_Local_Configuration_Pragmas    : constant Name_Id := N + 600;
+   Name_Locally_Removed_Files          : constant Name_Id := N + 601;
+   Name_Metrics                        : constant Name_Id := N + 602;
+   Name_Naming                         : constant Name_Id := N + 603;
+   Name_Object_Dir                     : constant Name_Id := N + 604;
+   Name_Pretty_Printer                 : constant Name_Id := N + 605;
+   Name_Project                        : constant Name_Id := N + 606;
+   Name_Separate_Suffix                : constant Name_Id := N + 607;
+   Name_Source_Dirs                    : constant Name_Id := N + 608;
+   Name_Source_Files                   : constant Name_Id := N + 609;
+   Name_Source_List_File               : constant Name_Id := N + 610;
+   Name_Spec                           : constant Name_Id := N + 611;
+   Name_Spec_Suffix                    : constant Name_Id := N + 612;
+   Name_Specification                  : constant Name_Id := N + 613;
+   Name_Specification_Exceptions       : constant Name_Id := N + 614;
+   Name_Specification_Suffix           : constant Name_Id := N + 615;
+   Name_Switches                       : constant Name_Id := N + 616;
    --  Other miscellaneous names used in front end
 
-   Name_Unaligned_Valid                : constant Name_Id := N + 616;
+   Name_Unaligned_Valid                : constant Name_Id := N + 617;
 
    --  Mark last defined name for consistency check in Snames body
 
-   Last_Predefined_Name                : constant Name_Id := N + 616;
+   Last_Predefined_Name                : constant Name_Id := N + 617;
 
    subtype Any_Operator_Name is Name_Id range
      First_Operator_Name .. Last_Operator_Name;
index fa28445a42395fc74b00331fe13b924ca0b12607..c80241b3311843e39b62585b1ab8964aaf687555 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                            (AIX/PPC Version)                             --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 6b16d1f53f1d6e80f541cf02a775ae10a3acd6b4..73cbcd35ac4dfa8a901171e108a6880a31a525dd 100644 (file)
@@ -154,6 +154,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index a7371a2d9a2ae60481c5c2bad8016f3d76d5b52a..25b72ca1d5960ec33e2a0a87e850f91ec4996b62 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                           (FreeBSD/x86 Version)                          --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 3b971a587f4fcf13e881cdfe850e26f8ac3641aa..e9664f09a4514f0af0cfc5efba9334f1693221ec 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                             (HP-UX Version)                              --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := False;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 11058290e59e55567ef646b75c65a522b16f8526..d8d73a1e5072ee8ae611ef438412ac26dc5e3f44 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                        (OpenNT/Interix Version)                          --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 0bdc08b1fcb8fed9787fc2f4970ad15b065f35ec..2403db75db6dfeb0345683c678486c7e6866df1a 100644 (file)
@@ -140,6 +140,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := True;
index 7ccbe6c65eb114d093cedc2b94311d4827fb3e0a..b053e01e0ca2b500b70fa1dbce1177ba37cf98c6 100644 (file)
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := True;
index 72c51b0df5223fd262763e5d52c785dec9fad6b3..510673e9d3f95c01efd258ab03501b1a7caa56f0 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                         (GNU-Linux/ia64 Version)                         --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 8bcf78082214130369906b1b8ea54de695f52a2b..28edbfecf6768188049b5f6630d07f80aaf55cc3 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                          (GNU-Linux/x86 Version)                         --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 37a495d8870bddf6bffe77d54584cf74048af5b2..99c33dbdb730247b6b2b42919c7b60858cb6013b 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                          (GNU-Linux/x86-64 Version)                      --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index caeae17a168d6ecce76bca5a0efe6527c7ee4e92..9a0bf681ed8cb6a24d9449f7bf1005b8319a0a08 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                           (LynxOS PPC Version)                           --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 130b5f0d451fca5e64cf8bf28fc972b116e4bcfe..0187b381ebf02fde385dbe2f1bf3b449d846f021 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                           (LynxOS x86 Version)                           --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 9316644e0d9833f47c965b609226cc1c9e90ade0..4aafd025770ce07feb9e027dc1a33678b634d486 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                               (NT Version)                               --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 17acb5bc21e579e02a989b7b655e6e7e27cbf656..53d8b8c1306a22134d70a7c653f08eb55c028c6a 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                             (OS/2 Version)                               --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 80621a76517773dfbf0aa8f32185cfeac3b5fcda..397e38f7fa9722d28b6ef3352f9c93c1fa5b9a32 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                          (SUN Solaris Version)                           --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := True;
index dca552ebc5a2c2e91d9752d6bf70cb62168fd578..6f774513f162e3bc2918670b44d19c0eac6bbd92 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                        (Solaris Sparcv9 Version)                         --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := True;
index d48b684f84c599337ec9728ab3bd1b285673a474..c661ac03270d69e79b1f00f3c9de3b7d480cbd34 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                          (x86 Solaris Version)                           --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := True;
index f0067b37f84c2d12e1e23af7e34f30f7e47ad5f6..3134ffe063043c5c3a261a6c45516c9b937fbc99 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                           (DEC Unix Version)                             --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := True;
    Stack_Check_Probes        : constant Boolean := True;
index 01404ee32aa2480444eea698baeaa4dbb594160a..5cfd21bb674a73560f07fe5fe0523884e6877428 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                         (SCO UnixWare Version)                           --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 3ba5e692195b4905d96c45c56a1d0f88abbb4bbe..1b4b7c275a9bbc2a8537f5913258c11942589726 100644 (file)
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := True;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := True;
    Stack_Check_Probes        : constant Boolean := True;
index fc4fb2e6d6f24e24320d1bdb4436bcd9e0bd74b6..82faeb39c0ba83616ef22160cea174814896ea59 100644 (file)
@@ -128,6 +128,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := True;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := True;
    Stack_Check_Probes        : constant Boolean := True;
index 9052e2b16bb14da59825a475266dd65a3a52259c..aefdb05abba1723aaf8662351e39f63490ff8344 100644 (file)
@@ -147,6 +147,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := True;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := True;
    Stack_Check_Probes        : constant Boolean := True;
index 12bbec478ffda44dd754caabd4f44eb254a1b8f8..9e0d847132c822769f3f2b41f10be53c12aa1b0f 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                         (VxWorks Version Alpha)                          --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -136,6 +136,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 3e1e3cf98959ce2231a4b044c7800437504b06d3..cdf4fcee8b98d035285c929a86d14b9bca298e3b 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                          (VxWorks version M68K)                          --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -136,6 +136,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := False;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 19c96d0d6ead5b754b12ae34c4b55d663fc17139..3cc13d7c99482cc7d783186f59ec90b757f6e47c 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                         (VxWorks Version Mips)                           --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -136,6 +136,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index bcb415c027701938c990bbf6783aeff1cfab4063..b73f808a54b591c28d6436ed4e0b66f40838bd4f 100644 (file)
@@ -136,6 +136,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 8ddf3b06a6a749e879ccb2ab96fe5ee3a07c3cfd..c6a934018c18e6340d29147a133bc6f98dab85f0 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                       (VxWorks Version Sparc/64)                         --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -138,6 +138,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 1575fdfea90452fd1146790648f54f617606e62d..bd1a4d36d70b35337460fb00e1b9389dbb301be6 100644 (file)
@@ -136,6 +136,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 1fa021d51877250a606972296747de4fdc2f3962..d762fcad363a301318c119b7daa213259d5dce7b 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                         (VxWorks Version Xscale)                         --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -136,6 +136,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index eca2dc662dda9613781d41e6d7b0b40b23821583..ff5a57dfa8485096090dd465bc2d5c82a56d99f1 100644 (file)
@@ -7,7 +7,7 @@
 --                                 S p e c                                  --
 --                            (Compiler Version)                            --
 --                                                                          --
---          Copyright (C) 1992-2003 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -141,6 +141,7 @@ private
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
+   Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
    Stack_Check_Probes        : constant Boolean := False;
index 7be260b9738f986fb4ed0403ca445b67bb2539d0..9447471007c97241ae032b8338971fa6c1887049 100644 (file)
@@ -53,6 +53,7 @@ package body Targparm is
       FFO,  --   Fractional_Fixed_Ops
       MOV,  --   Machine_Overflows
       MRN,  --   Machine_Rounds
+      PAS,  --   Preallocated_Stacks
       S64,  --   Support_64_Bit_Divides
       SAG,  --   Support_Aggregates
       SCA,  --   Support_Composite_Assign
@@ -94,6 +95,7 @@ package body Targparm is
    FFO_Str : aliased constant Source_Buffer := "Fractional_Fixed_Ops";
    MOV_Str : aliased constant Source_Buffer := "Machine_Overflows";
    MRN_Str : aliased constant Source_Buffer := "Machine_Rounds";
+   PAS_Str : aliased constant Source_Buffer := "Preallocated_Stacks";
    S64_Str : aliased constant Source_Buffer := "Support_64_Bit_Divides";
    SAG_Str : aliased constant Source_Buffer := "Support_Aggregates";
    SCA_Str : aliased constant Source_Buffer := "Support_Composite_Assign";
@@ -132,6 +134,7 @@ package body Targparm is
       FFO_Str'Access,
       MOV_Str'Access,
       MRN_Str'Access,
+      PAS_Str'Access,
       S64_Str'Access,
       SAG_Str'Access,
       SCA_Str'Access,
@@ -557,6 +560,7 @@ package body Targparm is
                      when FFO => Fractional_Fixed_Ops_On_Target      := Result;
                      when MOV => Machine_Overflows_On_Target         := Result;
                      when MRN => Machine_Rounds_On_Target            := Result;
+                     when PAS => Preallocated_Stacks_On_Target       := Result;
                      when S64 => Support_64_Bit_Divides_On_Target    := Result;
                      when SAG => Support_Aggregates_On_Target        := Result;
                      when SCA => Support_Composite_Assign_On_Target  := Result;
index d7a25148e398d8feda3f0b595df566950fbf68b5..48f8c32855999a79fdc0103fd81625cc89a6b0bb 100644 (file)
@@ -345,6 +345,13 @@ package Targparm is
    --
    --    The routine __gnat_handler_installed is not imported
 
+   Preallocated_Stacks_On_Target : Boolean;
+   --  If this flag is True, then the expander preallocates all task stacks
+   --  at compile time. If the flag is False, then task stacks are not pre-
+   --  allocated, and task stack allocation is the responsibility of the
+   --  run-time (which typically delegates the task to the underlying
+   --  operating system environment).
+
    ---------------------
    -- Duration Format --
    ---------------------