types.ads, [...]: Minor reformatting.
authorRobert Dewar <dewar@adacore.com>
Wed, 12 Sep 2007 11:58:21 +0000 (13:58 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 12 Sep 2007 11:58:21 +0000 (13:58 +0200)
2007-09-12  Robert Dewar  <dewar@adacore.com>

* types.ads, a-charac.ads, freeze.adb: Minor reformatting.

* a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
s-os_lib.adb, s-string.adb, s-utf_32.adb,
a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
pragma Compiler_Unit and adds it to relevant library units.

From-SVN: r128426

83 files changed:
gcc/ada/a-charac.ads
gcc/ada/a-chlat1.ads
gcc/ada/a-elchha.ads
gcc/ada/a-except.adb
gcc/ada/a-except.ads
gcc/ada/freeze.adb
gcc/ada/g-hesora.adb
gcc/ada/g-hesora.ads
gcc/ada/g-htable.ads
gcc/ada/g-speche.adb
gcc/ada/g-speche.ads
gcc/ada/lib-load.adb
gcc/ada/lib-writ.adb
gcc/ada/lib.adb
gcc/ada/lib.ads
gcc/ada/par-prag.adb
gcc/ada/restrict.adb
gcc/ada/restrict.ads
gcc/ada/s-addope.adb
gcc/ada/s-addope.ads
gcc/ada/s-assert.adb
gcc/ada/s-assert.ads
gcc/ada/s-carun8.adb
gcc/ada/s-carun8.ads
gcc/ada/s-casuti.adb
gcc/ada/s-casuti.ads
gcc/ada/s-crc32.adb
gcc/ada/s-crc32.ads
gcc/ada/s-except.adb
gcc/ada/s-except.ads
gcc/ada/s-exctab.adb
gcc/ada/s-exctab.ads
gcc/ada/s-htable.adb
gcc/ada/s-htable.ads
gcc/ada/s-imgenu.adb
gcc/ada/s-imgenu.ads
gcc/ada/s-mastop.adb
gcc/ada/s-mastop.ads
gcc/ada/s-memory.adb
gcc/ada/s-memory.ads
gcc/ada/s-os_lib.adb
gcc/ada/s-os_lib.ads
gcc/ada/s-purexc.ads
gcc/ada/s-secsta.adb
gcc/ada/s-secsta.ads
gcc/ada/s-soflin.adb
gcc/ada/s-soflin.ads
gcc/ada/s-sopco3.adb
gcc/ada/s-sopco3.ads
gcc/ada/s-sopco4.adb
gcc/ada/s-sopco4.ads
gcc/ada/s-sopco5.adb
gcc/ada/s-sopco5.ads
gcc/ada/s-stache.adb
gcc/ada/s-stache.ads
gcc/ada/s-stalib.adb
gcc/ada/s-stalib.ads
gcc/ada/s-stoele.adb
gcc/ada/s-stoele.ads
gcc/ada/s-strcom.adb
gcc/ada/s-strcom.ads
gcc/ada/s-string.adb
gcc/ada/s-string.ads
gcc/ada/s-strops.adb
gcc/ada/s-strops.ads
gcc/ada/s-traceb.adb
gcc/ada/s-traceb.ads
gcc/ada/s-traent.adb
gcc/ada/s-traent.ads
gcc/ada/s-unstyp.ads
gcc/ada/s-utf_32.adb
gcc/ada/s-utf_32.ads
gcc/ada/s-wchcnv.adb
gcc/ada/s-wchcnv.ads
gcc/ada/s-wchcon.adb
gcc/ada/s-wchcon.ads
gcc/ada/s-wchjis.adb
gcc/ada/s-wchjis.ads
gcc/ada/sem_ch11.adb
gcc/ada/sem_prag.adb
gcc/ada/snames.adb
gcc/ada/snames.ads
gcc/ada/snames.h

index 30af8b812e1e8e50867220d0c654468c92f7435b..8355f54184ae6267344a9f05537b0293bf217b37 100644 (file)
@@ -15,5 +15,4 @@
 
 package Ada.Characters is
    pragma Pure;
-
 end Ada.Characters;
index f0a9006bd2c4a3315557947a7965135c19782b20..056c881a92314b95023f9b7e4eea8fe80739d016 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package Ada.Characters.Latin_1 is
    pragma Pure;
 
index bbd68b45063be6641f06b76418f65795034044ed..87287f003727a015a7c3a908059a1a1d0c741764 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2003-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 2003-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 
 --  Last chance handler. Unhandled exceptions are passed to this routine
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 procedure Ada.Exceptions.Last_Chance_Handler
   (Except :  Exception_Occurrence);
 pragma Export (C,
index 0048622473d0f047a8780f841da03ad91fc64aec..5eae60f0e3cd94657bc559269993e10d9b9a863d 100644 (file)
 --  2005 functionality is required. in particular, it is used for building
 --  run times on all targets.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 pragma Style_Checks (All_Checks);
 --  No subprogram ordering check, due to logical grouping
 
index a5c77af03c8ac8e455bc82ac11a20e527b8e63ac..40e3697f4b07376c0260144f6cc872daa0711443 100644 (file)
@@ -50,6 +50,10 @@ pragma Polling (Off);
 --  We must turn polling off for this unit, because otherwise we get
 --  elaboration circularities with ourself.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System;
 with System.Parameters;
 with System.Standard_Library;
index 787363898f57c068be7a44e269ab1b52a7d3ae1b..26e03185bf64fa18d36292ada1b200bc97fca1d4 100644 (file)
@@ -1484,14 +1484,11 @@ package body Freeze is
             Inner : Node_Id;
          begin
             Inner := N;
-
             loop
                if Nkind (Inner) = N_Allocator then
                   return Inner;
-
                elsif Nkind (Inner) = N_Qualified_Expression then
                   Inner := Expression (Inner);
-
                else
                   return Empty;
                end if;
index 438bd712750de05c7e91f79db38b0605b64580b6..73cdcaaa1fa92e9df774f884d1e0ac1d2ed530d5 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                     Copyright (C) 1995-2005, AdaCore                     --
+--                     Copyright (C) 1995-2007, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body GNAT.Heap_Sort_A is
 
    ----------
index e5f968899835bdc4d7617d646ef96d5d4d0be2d8..bf60cafd9ef3269c0ae3cd1c8e8198f8c542a221 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 1995-2005, AdaCore                     --
+--                     Copyright (C) 1995-2007, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  worst case and is in place with no additional storage required. See
 --  the body for exact details of the algorithm used.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package GNAT.Heap_Sort_A is
    pragma Preelaborate;
 
index ef28bc5d675a3371cb53e9040ad0f2ee0095bdd0..b852cce396a9bfccfa839c3f6a6d322dbb98f141 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 1995-2005, AdaCore                     --
+--                     Copyright (C) 1995-2007, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  this facility is accessed from run time routines, but clients should
 --  always access the version supplied via GNAT.HTable.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.HTable;
 
 package GNAT.HTable is
index 9d00bc5e0991ac1f6ebac5b080c1c8a8352bdef2..72c0abcfaccd4bc1be31f8b44a1a7ddd33f8e481 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                     Copyright (C) 1998-2006, AdaCore                     --
+--                     Copyright (C) 1998-2007, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body GNAT.Spelling_Checker is
 
    ------------------------
index ab3daeaecd5669b46fb617132db8c7208a28166c..8b039e8491adcf6aca9f1e5acc70465d4f3a152e 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 1998-2006, AdaCore                     --
+--                     Copyright (C) 1998-2007, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 
 --  This package provides a utility routine for checking for bad spellings
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package GNAT.Spelling_Checker is
    pragma Pure;
 
index 843ddbd2b2f41956e4af13e51236a1b13e85b02f..f439926b4cbaf4087bc5172fe7666111d174c833 100644 (file)
@@ -206,24 +206,25 @@ package body Lib.Load is
       Unum := Units.Last;
 
       Units.Table (Unum) := (
-        Cunit           => Cunit,
-        Cunit_Entity    => Cunit_Entity,
-        Dependency_Num  => 0,
-        Dynamic_Elab    => False,
-        Error_Location  => Sloc (With_Node),
-        Expected_Unit   => Spec_Name,
-        Fatal_Error     => True,
-        Generate_Code   => False,
-        Has_RACW        => False,
-        Ident_String    => Empty,
-        Loading         => False,
-        Main_Priority   => Default_Main_Priority,
-        Munit_Index     => 0,
-        Serial_Number   => 0,
-        Source_Index    => No_Source_File,
-        Unit_File_Name  => Get_File_Name (Spec_Name, Subunit => False),
-        Unit_Name       => Spec_Name,
-        Version         => 0);
+        Cunit            => Cunit,
+        Cunit_Entity     => Cunit_Entity,
+        Dependency_Num   => 0,
+        Dynamic_Elab     => False,
+        Error_Location   => Sloc (With_Node),
+        Expected_Unit    => Spec_Name,
+        Fatal_Error      => True,
+        Generate_Code    => False,
+        Has_RACW         => False,
+        Is_Compiler_Unit => False,
+        Ident_String     => Empty,
+        Loading          => False,
+        Main_Priority    => Default_Main_Priority,
+        Munit_Index      => 0,
+        Serial_Number    => 0,
+        Source_Index     => No_Source_File,
+        Unit_File_Name   => Get_File_Name (Spec_Name, Subunit => False),
+        Unit_Name        => Spec_Name,
+        Version          => 0);
 
       Set_Comes_From_Source_Default (Save_CS);
       Set_Error_Posted (Cunit_Entity);
@@ -308,24 +309,25 @@ package body Lib.Load is
          end if;
 
          Units.Table (Main_Unit) := (
-           Cunit           => Empty,
-           Cunit_Entity    => Empty,
-           Dependency_Num  => 0,
-           Dynamic_Elab    => False,
-           Error_Location  => No_Location,
-           Expected_Unit   => No_Unit_Name,
-           Fatal_Error     => False,
-           Generate_Code   => False,
-           Has_RACW        => False,
-           Ident_String    => Empty,
-           Loading         => True,
-           Main_Priority   => Default_Main_Priority,
-           Munit_Index     => 0,
-           Serial_Number   => 0,
-           Source_Index    => Main_Source_File,
-           Unit_File_Name  => Fname,
-           Unit_Name       => No_Unit_Name,
-           Version         => Version);
+           Cunit            => Empty,
+           Cunit_Entity     => Empty,
+           Dependency_Num   => 0,
+           Dynamic_Elab     => False,
+           Error_Location   => No_Location,
+           Expected_Unit    => No_Unit_Name,
+           Fatal_Error      => False,
+           Generate_Code    => False,
+           Has_RACW         => False,
+           Is_Compiler_Unit => False,
+           Ident_String     => Empty,
+           Loading          => True,
+           Main_Priority    => Default_Main_Priority,
+           Munit_Index      => 0,
+           Serial_Number    => 0,
+           Source_Index     => Main_Source_File,
+           Unit_File_Name   => Fname,
+           Unit_Name        => No_Unit_Name,
+           Version          => Version);
       end if;
    end Load_Main_Source;
 
@@ -627,24 +629,25 @@ package body Lib.Load is
 
          if Src_Ind /= No_Source_File then
             Units.Table (Unum) := (
-              Cunit           => Empty,
-              Cunit_Entity    => Empty,
-              Dependency_Num  => 0,
-              Dynamic_Elab    => False,
-              Error_Location  => Sloc (Error_Node),
-              Expected_Unit   => Uname_Actual,
-              Fatal_Error     => False,
-              Generate_Code   => False,
-              Has_RACW        => False,
-              Ident_String    => Empty,
-              Loading         => True,
-              Main_Priority   => Default_Main_Priority,
-              Munit_Index     => 0,
-              Serial_Number   => 0,
-              Source_Index    => Src_Ind,
-              Unit_File_Name  => Fname,
-              Unit_Name       => Uname_Actual,
-              Version         => Source_Checksum (Src_Ind));
+              Cunit            => Empty,
+              Cunit_Entity     => Empty,
+              Dependency_Num   => 0,
+              Dynamic_Elab     => False,
+              Error_Location   => Sloc (Error_Node),
+              Expected_Unit    => Uname_Actual,
+              Fatal_Error      => False,
+              Generate_Code    => False,
+              Has_RACW         => False,
+              Is_Compiler_Unit => False,
+              Ident_String     => Empty,
+              Loading          => True,
+              Main_Priority    => Default_Main_Priority,
+              Munit_Index      => 0,
+              Serial_Number    => 0,
+              Source_Index     => Src_Ind,
+              Unit_File_Name   => Fname,
+              Unit_Name        => Uname_Actual,
+              Version          => Source_Checksum (Src_Ind));
 
             --  Parse the new unit
 
index 7747f39891d59dfd7d60dd7e1d238bc6a4044e93..40d5103e78e1a03971ea6370cde8bb4d0d0db938 100644 (file)
@@ -69,24 +69,25 @@ package body Lib.Writ is
    begin
       Units.Increment_Last;
       Units.Table (Units.Last) :=
-        (Unit_File_Name  => File_Name (S),
-         Unit_Name       => No_Unit_Name,
-         Expected_Unit   => No_Unit_Name,
-         Source_Index    => S,
-         Cunit           => Empty,
-         Cunit_Entity    => Empty,
-         Dependency_Num  => 0,
-         Dynamic_Elab    => False,
-         Fatal_Error     => False,
-         Generate_Code   => False,
-         Has_RACW        => False,
-         Ident_String    => Empty,
-         Loading         => False,
-         Main_Priority   => -1,
-         Munit_Index     => 0,
-         Serial_Number   => 0,
-         Version         => 0,
-         Error_Location  => No_Location);
+        (Unit_File_Name   => File_Name (S),
+         Unit_Name        => No_Unit_Name,
+         Expected_Unit    => No_Unit_Name,
+         Source_Index     => S,
+         Cunit            => Empty,
+         Cunit_Entity     => Empty,
+         Dependency_Num   => 0,
+         Dynamic_Elab     => False,
+         Fatal_Error      => False,
+         Generate_Code    => False,
+         Has_RACW         => False,
+         Is_Compiler_Unit => False,
+         Ident_String     => Empty,
+         Loading          => False,
+         Main_Priority    => -1,
+         Munit_Index      => 0,
+         Serial_Number    => 0,
+         Version          => 0,
+         Error_Location   => No_Location);
    end Add_Preprocessing_Dependency;
 
    ------------------------------
@@ -122,24 +123,25 @@ package body Lib.Writ is
 
       Units.Increment_Last;
       Units.Table (Units.Last) := (
-        Unit_File_Name  => System_Fname,
-        Unit_Name       => System_Uname,
-        Expected_Unit   => System_Uname,
-        Source_Index    => System_Source_File_Index,
-        Cunit           => Empty,
-        Cunit_Entity    => Empty,
-        Dependency_Num  => 0,
-        Dynamic_Elab    => False,
-        Fatal_Error     => False,
-        Generate_Code   => False,
-        Has_RACW        => False,
-        Ident_String    => Empty,
-        Loading         => False,
-        Main_Priority   => -1,
-        Munit_Index     => 0,
-        Serial_Number   => 0,
-        Version         => 0,
-        Error_Location  => No_Location);
+        Unit_File_Name   => System_Fname,
+        Unit_Name        => System_Uname,
+        Expected_Unit    => System_Uname,
+        Source_Index     => System_Source_File_Index,
+        Cunit            => Empty,
+        Cunit_Entity     => Empty,
+        Dependency_Num   => 0,
+        Dynamic_Elab     => False,
+        Fatal_Error      => False,
+        Generate_Code    => False,
+        Has_RACW         => False,
+        Is_Compiler_Unit => False,
+        Ident_String     => Empty,
+        Loading          => False,
+        Main_Priority    => -1,
+        Munit_Index      => 0,
+        Serial_Number    => 0,
+        Version          => 0,
+        Error_Location   => No_Location);
 
       --  Parse system.ads so that the checksum is set right
       --  Style checks are not applied.
index 7c5db5df88b57bc7ba4fb4873f2b7d3bb1cb6a8d..ee975bd18d95b6de577b7f422dfe4adb812e4080 100644 (file)
@@ -120,6 +120,11 @@ package body Lib is
       return Units.Table (U).Has_RACW;
    end Has_RACW;
 
+   function Is_Compiler_Unit (U : Unit_Number_Type) return Boolean is
+   begin
+      return Units.Table (U).Is_Compiler_Unit;
+   end Is_Compiler_Unit;
+
    function Ident_String (U : Unit_Number_Type) return Node_Id is
    begin
       return Units.Table (U).Ident_String;
@@ -195,6 +200,14 @@ package body Lib is
       Units.Table (U).Has_RACW := B;
    end Set_Has_RACW;
 
+   procedure Set_Is_Compiler_Unit
+     (U : Unit_Number_Type;
+      B : Boolean := True)
+   is
+   begin
+      Units.Table (U).Is_Compiler_Unit := B;
+   end Set_Is_Compiler_Unit;
+
    procedure Set_Ident_String (U : Unit_Number_Type; N : Node_Id) is
    begin
       Units.Table (U).Ident_String := N;
index 33d8727ae8800e30a45fc0997547bd6f42db553e..19cfa1841acd797e883862ea7458cd574cc14f12 100644 (file)
@@ -325,6 +325,10 @@ package Lib is
    --      (RACW) object. This is used for controlling generation of the RA
    --      attribute in the ali file.
 
+   --    Is_Compiler_Unit
+   --      A Boolean flag, initially set False by default, set to True if a
+   --      pragma Compiler_Unit appears in the unit.
+
    --    Ident_String
    --      N_String_Literal node from a valid pragma Ident that applies to
    --      this unit. If no Ident pragma applies to the unit, then Empty.
@@ -377,6 +381,7 @@ package Lib is
    function Generate_Code    (U : Unit_Number_Type) return Boolean;
    function Ident_String     (U : Unit_Number_Type) return Node_Id;
    function Has_RACW         (U : Unit_Number_Type) return Boolean;
+   function Is_Compiler_Unit (U : Unit_Number_Type) return Boolean;
    function Loading          (U : Unit_Number_Type) return Boolean;
    function Main_Priority    (U : Unit_Number_Type) return Int;
    function Munit_Index      (U : Unit_Number_Type) return Nat;
@@ -385,17 +390,18 @@ package Lib is
    function Unit_Name        (U : Unit_Number_Type) return Unit_Name_Type;
    --  Get value of named field from given units table entry
 
-   procedure Set_Cunit          (U : Unit_Number_Type; N : Node_Id);
-   procedure Set_Cunit_Entity   (U : Unit_Number_Type; E : Entity_Id);
-   procedure Set_Dynamic_Elab   (U : Unit_Number_Type; B : Boolean := True);
-   procedure Set_Error_Location (U : Unit_Number_Type; W : Source_Ptr);
-   procedure Set_Fatal_Error    (U : Unit_Number_Type; B : Boolean := True);
-   procedure Set_Generate_Code  (U : Unit_Number_Type; B : Boolean := True);
-   procedure Set_Has_RACW       (U : Unit_Number_Type; B : Boolean := True);
-   procedure Set_Ident_String   (U : Unit_Number_Type; N : Node_Id);
-   procedure Set_Loading        (U : Unit_Number_Type; B : Boolean := True);
-   procedure Set_Main_Priority  (U : Unit_Number_Type; P : Int);
-   procedure Set_Unit_Name      (U : Unit_Number_Type; N : Unit_Name_Type);
+   procedure Set_Cunit            (U : Unit_Number_Type; N : Node_Id);
+   procedure Set_Cunit_Entity     (U : Unit_Number_Type; E : Entity_Id);
+   procedure Set_Dynamic_Elab     (U : Unit_Number_Type; B : Boolean := True);
+   procedure Set_Error_Location   (U : Unit_Number_Type; W : Source_Ptr);
+   procedure Set_Fatal_Error      (U : Unit_Number_Type; B : Boolean := True);
+   procedure Set_Generate_Code    (U : Unit_Number_Type; B : Boolean := True);
+   procedure Set_Has_RACW         (U : Unit_Number_Type; B : Boolean := True);
+   procedure Set_Is_Compiler_Unit (U : Unit_Number_Type; B : Boolean := True);
+   procedure Set_Ident_String     (U : Unit_Number_Type; N : Node_Id);
+   procedure Set_Loading          (U : Unit_Number_Type; B : Boolean := True);
+   procedure Set_Main_Priority    (U : Unit_Number_Type; P : Int);
+   procedure Set_Unit_Name        (U : Unit_Number_Type; N : Unit_Name_Type);
    --  Set value of named field for given units table entry. Note that we
    --  do not have an entry for each possible field, since some of the fields
    --  can only be set by specialized interfaces (defined below).
@@ -618,6 +624,7 @@ private
    pragma Inline (Fatal_Error);
    pragma Inline (Generate_Code);
    pragma Inline (Has_RACW);
+   pragma Inline (Is_Compiler_Unit);
    pragma Inline (Increment_Serial_Number);
    pragma Inline (Loading);
    pragma Inline (Main_Priority);
@@ -651,6 +658,7 @@ private
       Fatal_Error      : Boolean;
       Generate_Code    : Boolean;
       Has_RACW         : Boolean;
+      Is_Compiler_Unit : Boolean;
       Dynamic_Elab     : Boolean;
       Loading          : Boolean;
    end record;
@@ -677,10 +685,11 @@ private
       Generate_Code    at 53 range 0 ..  7;
       Has_RACW         at 54 range 0 ..  7;
       Dynamic_Elab     at 55 range 0 ..  7;
-      Loading          at 56 range 0 .. 31;
+      Is_Compiler_Unit at 56 range 0 .. 31;
+      Loading          at 60 range 0 .. 31;
    end record;
 
-   for Unit_Record'Size use 60 * 8;
+   for Unit_Record'Size use 64 * 8;
    --  This ensures that we did not leave out any fields
 
    package Units is new Table.Table (
index df87a74e6f127ccd3a8516634434b56a396c6d61..d51ed2ec20bf003e7469f9362966acdef6bbcc5f 100644 (file)
@@ -1057,6 +1057,7 @@ begin
            Pragma_CIL_Constructor               |
            Pragma_Compile_Time_Error            |
            Pragma_Compile_Time_Warning          |
+           Pragma_Compiler_Unit                 |
            Pragma_Convention_Identifier         |
            Pragma_CPP_Class                     |
            Pragma_CPP_Constructor               |
index 4305e6cf913f48691086dcadff5a4ca299a8a585..ac1d254f85ea34e6e75075074b024c64b192c482 100644 (file)
@@ -84,6 +84,17 @@ package body Restrict is
       end if;
    end Abort_Allowed;
 
+   -------------------------
+   -- Check_Compiler_Unit --
+   -------------------------
+
+   procedure Check_Compiler_Unit (N : Node_Id) is
+   begin
+      if Is_Compiler_Unit (Get_Source_Unit (N)) then
+         Error_Msg_N ("use of construct not allowed in compiler", N);
+      end if;
+   end Check_Compiler_Unit;
+
    ------------------------------------
    -- Check_Elaboration_Code_Allowed --
    ------------------------------------
index 188bc7823c7d58b3527bb9618b71dcefbbec6e52..11e7075685d20e3212ea47d87dc4412a92e681d4 100644 (file)
@@ -171,6 +171,11 @@ package Restrict is
    --  For abort to be allowed, either No_Abort_Statements must be False,
    --  or Max_Asynchronous_Select_Nesting must be non-zero.
 
+   procedure Check_Compiler_Unit (N : Node_Id);
+   --  If unit N is in a unit that has a pragma Compiler_Unit, then a message
+   --  is posted on node N noting use of a construct that is not permitted in
+   --  the compiler.
+
    procedure Check_Restricted_Unit (U : Unit_Name_Type; N : Node_Id);
    --  Checks if loading of unit U is prohibited by the setting of some
    --  restriction (e.g. No_IO restricts the loading of unit Ada.Text_IO).
index 548b214dccc4b1935aedf2ae9f18601d6d8b4c9a..b9350c6f8ea3a46cd2ddeb4a749baa04d4d8ad1b 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Unchecked_Conversion;
 
 package body System.Address_Operations is
index 680fe35ae4e3968c55ecd67fb5585e668345b825..99026bd218ef70959dea4a2b224446301247eb29 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2004-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  inappropriate use by applications programs). In addition, the logical
 --  operations may not be available if type Address is a signed integer.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Address_Operations is
    pragma Pure;
 
index 8123e6ca18150007e2d615d1250d732a1da05cf7..38714faf7d5a3b257adf68f936eaf8bf7dde6950 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Exceptions;
 with System.Exceptions;
 
index b3f10b7e3cb2a3d2b5a97daf04bae1f5a3c784b6..a890f4060655fbfb22f1c9df6bcf639b6fb700b5 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  This unit may be used directly from an application program by providing
 --  an appropriate WITH, and the interface can be expected to remain stable.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Assertions is
 
    Assert_Failure : exception;
index 36bd3be47eff4143acf99626a89de7c19086e12c..d6f43f10cb941fe8aba250a69e5032900ab486c9 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Address_Operations; use System.Address_Operations;
 
 with Ada.Unchecked_Conversion;
index be095ae12ebcfb5397ba7c3073591bcd173cc7d7..2bbbe6a08d39e00a5e13b57b3837d82a6c2abec8 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2002-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 2002-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  This package contains functions for runtime comparisons on arrays whose
 --  elements are 8-bit discrete type values to be treated as unsigned.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Compare_Array_Unsigned_8 is
 
    --  Note: although the functions in this package are in a sense Pure, the
index 16f756260d0ed4d5ed21b66ea1606cf5c30d3b7e..807024e76314b40eeb3b6b4d7d3fde3f03c829d6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                     Copyright (C) 1995-2005 AdaCore                      --
+--                     Copyright (C) 1995-2007, AdaCore                     --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.Case_Util is
 
    --------------
index 6b444d396caa6f16e36220a7b72c47c985a2a5da..8ba633c288ce00c2a12a6bc9404ee68f4f4ef87a 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 1995-2005 AdaCore                      --
+--          Copyright (C) 1995-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  Note that all the routines in this package are available to the user
 --  via GNAT.Case_Util, which imports all the entities from this package.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Case_Util is
    pragma Pure;
 
index 5062072462b2b0d40eb33217d1e2976132021e36..bd3e3591a37f9478cc6ce6174610cc1af858dec7 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2001-2002 Free Software Foundation, Inc.          --
+--          Copyright (C) 2001-2007, Free Software Foundation, Inc.          --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.CRC32 is
 
    Init   : constant CRC32 := 16#FFFF_FFFF#;  -- Initial value
index 7f71abe7ade57f255dd7b4fba9ac7b56c8164ebd..9737c7328003597b91e742ebbd2403ae8861931c 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---             Copyright (C) 2001 Free Software Foundation, Inc.            --
+--          Copyright (C) 2001-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  "Computation of Cyclic Redundancy Checks via Table Look-Up", Communications
 --  of the ACM, Vol. 31 No. 8, pp.1008-1013 Aug. 1988. Sarwate, D.V.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Interfaces;
 
 package System.CRC32 is
index 7c1923951ff7cc7db40d84b0d948f486d800cfae..56f387f68a54f897f1840d3d7a3d64ad81af3aae 100755 (executable)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.Exceptions is
 
    ---------------------------
index 5dc5c1fa563fd7f172ed450c44945d1a8f61e61b..cd052075a5c3a9f189ab0468bb332d2626cc5383 100644 (file)
 --  It should be compiled without optimization to let debuggers inspect
 --  parameter values reliably from breakpoints on the routines.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Standard_Library;
 
 package System.Exceptions is
index 7b7cfc14c21c408ad40443d4dde38b9dd1b7b55f..a97d04ef6458e86f0da8955f5207bb6639fa4f5c 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1996-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1996-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.HTable;
 with System.Soft_Links;   use System.Soft_Links;
 
index db0f392f19e6628f86a7cf044e697b8fe5fdc6e9..ea4f15b577f5cf5bc27a99653e4bcfda08b98b1a 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1996-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1996-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  registered exception names, for the implementation of the mapping
 --  of names to exceptions (used for exception streams and attributes)
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Standard_Library;
 
 package System.Exception_Table is
index cc890d626a74f5d617bacb050e6693e37bfca39c..9dbb7f98420178a08e28ca5566ed8671acf6ea0d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                    Copyright (C) 1995-2006, AdaCore                      --
+--                    Copyright (C) 1995-2007, AdaCore                      --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Unchecked_Deallocation;
 
 package body System.HTable is
index 95622aea7c59d60727f2e6b9cf19912a0a5b40e5..d5116c69f3b38c963f7667bd704fa66026b6b4a2 100644 (file)
 --  The Static_HTable package provides a more complex interface that allows
 --  complete control over allocation.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.HTable is
    pragma Preelaborate;
 
index 75e0677dc9c05ba778153f0916788812785e1fcd..c1a23dd62cffb375e779dc1fece257e0bb5e6523 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Unchecked_Conversion;
 
 package body System.Img_Enum is
index 853942259e1501b2dc0579c46600166cbc24944c..e9b01f354e4a72be42597e8514ef47011986875d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2000-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 2000-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  package System (where it is too early to start building image tables).
 --  Special routines exist for the enumeration routines in these packages.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Img_Enum is
    pragma Pure;
 
index 04906e4cd2c3643dc1123b9155690cabd5b61595..e707aa693c3c8f731beeae198e383e662d49ae80 100644 (file)
@@ -7,7 +7,7 @@
 --                                 B o d y                                  --
 --                             (Dummy version)                              --
 --                                                                          --
---          Copyright (C) 1999-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1999-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  This dummy version of System.Machine_State_Operations is used
 --  on targets for which zero cost exception handling is not implemented.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.Machine_State_Operations is
 
    --  Turn off warnings since many unused parameters
index c60cae6638514552026be2bb2df55e90b14f306b..39138bc3929613a93386ada6fa27fe4d487f55d9 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 pragma Polling (Off);
 --  We must turn polling off for this unit, because otherwise we get
 --  elaboration circularities with System.Exception_Tables.
index d149bd513cef36ea20ed7bd09c3a95feede39415..cfc539fcbdd6d699948bd2cb32900134d73182db 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2001-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 2001-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  you can remove the calls to Abort_Defer.all and Abort_Undefer.all from
 --  this unit.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Exceptions;
 with System.Soft_Links;
 with System.Parameters;
index 87b28ace46c3031ffa4842e084e0bc8d852ef89a..e455af6f5a61bb5ea762541eb9c2155bc7e4807c 100644 (file)
 --  This unit may be used directly from an application program by providing
 --  an appropriate WITH, and the interface can be expected to remain stable.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Memory is
    pragma Elaborate_Body;
 
index c37ab61c546d3983079cdfa4e11cd5a077c85fc2..d09d9235a7362cfaafcc23558606603023bf1232 100755 (executable)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Case_Util;
 with System.CRTL;
 with System.Soft_Links;
index cfa41480f435945351e35f85433c080b82bc80b9..bde73fdc6164abaa10f0cd8d1a96eb6e422c83eb 100755 (executable)
 --  be used by other predefined packages. User access to this package is via
 --  a renaming of this package in GNAT.OS_Lib (file g-os_lib.ads).
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System;
 with System.Strings;
 
index 4600f4a07db15e51ea72c6f4aa57efca75943c8e..4fd9c58bcf9e1b5410bf7dd3903f4bcb9c9e5e76 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                     Copyright (C) 2000-2005, AdaCore                     --
+--          Copyright (C) 2000-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
---  This package provides an interface for raising predefined exceptions
---  with an exception message. It can be used from Pure units. This unit
---  is for internal use only, it is not generally available to applications.
+--  This package provides an interface for raising predefined exceptions with
+--  an exception message. It can be used from Pure units. This unit is for
+--  internal use only, it is not generally available to applications.
+
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
 
 package System.Pure_Exceptions is
    pragma Pure;
index 0efa5556696e0fb78632f1aa61f9a04f469b68dc..6fafa8cfdab059895f7709f0c05653683e9648b8 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Soft_Links;
 with System.Parameters;
 with Ada.Unchecked_Conversion;
index c5a2fadf5021bbed16eaf1e9d0eb66f9fcd1c408..4e39e224210e3eff5fd8206d8e2b2d2c688f0528 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Storage_Elements;
 
 package System.Secondary_Stack is
index 0e5c58209f89b6f4d025f674e0bc19b9b86f3983..c0787d1cc791a8fde97cdfff32cc4937812f0b46 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 pragma Polling (Off);
 --  We must turn polling off for this unit, because otherwise we get
 --  an infinite loop from the code within the Poll routine itself.
index bc78052904e84d372a6d39e334f928e21c910467..1b3b796e4b129fe899a90b77bb246d92f230d34b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  initialized to non-tasking versions, and then if the tasking support is
 --  initialized, they are set to the real tasking versions.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Exceptions;
 with System.Stack_Checking;
 
index 5e83586f66e957f8681e1410e1d2c60792db3397..bdd11aa7b0dd969b7570ec638b0a3adbfda920c2 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-1998, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.String_Ops_Concat_3 is
 
    ------------------
index ff7dec2093cf0550c242a3d4687a32b606ffb766..1698b14acec6732054f003b0b3f09becf1b78403 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 
 --  This package contains the function for concatenating three strings
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.String_Ops_Concat_3 is
    pragma Pure;
 
index e9aef56bdcf04c97d214a263da3b43d356614c95..8770a67034e4ef510ac6227a19d517e8c60833b9 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-1998, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.String_Ops_Concat_4 is
 
    ------------------
index 5194dad6e5f98a208b3e0839d744a2e88f6fe41d..e705e5753d321b28cb5e261ece45cba817fa69d5 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 
 --  This package contains the function for concatenating four strings
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.String_Ops_Concat_4 is
    pragma Pure;
 
index 37d537f569f375d5dd93175a767978d158771aae..45eafd1a79cc1eb7621e12eca6a79d5f2fa10ebf 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-1998, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.String_Ops_Concat_5 is
 
    ------------------
index 001fee9a905a180f86211fb8bea1bf196e7871ea..2613a439a4a78b5ff37e9820db7e509474ec8388 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 
 --  This package contains the function for concatenating five strings
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.String_Ops_Concat_5 is
    pragma Pure;
 
index cd5a472ba8e7426392a5020090acc87d8db4a8b5..3afccbc1d67b4039512f5ab362787cee5f0bccc6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  B o d y                                 --
 --                                                                          --
---           Copyright (C) 1999-2005 Free Software Foundation, Inc.         --
+--           Copyright (C) 1999-2007, Free Software Foundation, Inc.        --
 --                                                                          --
 -- GNARL is free software; you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 --  As noted in the spec, this dummy body is present because otherwise we
 --  have bootstrapping path problems (there used to be a real body).
 
index 8e5e9242721c7ef72c94c6beaad9a2e3bb2934a6..5e2c30f77d640424e4ea4f55c9611a204cf50091 100644 (file)
 --  This package defines basic types and objects. Operations related to
 --  stack checking can be found in package System.Stack_Checking.Operations.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.Storage_Elements;
 
 package System.Stack_Checking is
index 5cf871461e776fd3a28b4b457576d7a8852f0d65..1036f3ff2fa963bb85a64bb0868043ad3091a227 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1995-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1995-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 --  The purpose of this body is simply to ensure that the two with'ed units
 --  are properly included in the link. They are not with'ed from the spec
 --  of System.Standard_Library, since this would cause order of elaboration
index c52083bdd74af0706157c4f26181491aad99de26..15a7864013f5847e93dfc32630e7d8d4b3ae3061 100644 (file)
 --  package and the packages it references are included in all Ada programs,
 --  together with the included data.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 pragma Polling (Off);
 --  We must turn polling off for this unit, because otherwise we get
 --  elaboration circularities with Ada.Exceptions if polling is on.
index 3a4f97333d4095e4ed5cb9ad2da2885c54272fff..01f9fdae2a41998b37a2c47d207d462358ae7032 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Unchecked_Conversion;
 
 package body System.Storage_Elements is
index 2bc6c8bb20e4a908122ae7aad90333754d3f4166..ef75211430c804ab2c9497d7cedafe2080830c11 100644 (file)
 --  extra declarations that can be introduced into System using Extend_System.
 --  It is a good idea to avoid use clauses for this package!
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Storage_Elements is
    pragma Pure;
    --  Note that we take advantage of the implementation permission to make
index d729bd16f6a46a6bd46faa96cc06d65d7dc90a9d..7a1daa7a6ce9a8687a14b49b9789723b548b62fa 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Unchecked_Conversion;
 
 package body System.String_Compare is
@@ -63,8 +67,7 @@ package body System.String_Compare is
      (Left      : System.Address;
       Right     : System.Address;
       Left_Len  : Natural;
-      Right_Len : Natural)
-      return      Integer
+      Right_Len : Natural) return Integer
    is
       Compare_Len : constant Natural := Natural'Min (Left_Len, Right_Len);
 
@@ -109,8 +112,7 @@ package body System.String_Compare is
      (Left      : System.Address;
       Right     : System.Address;
       Left_Len  : Natural;
-      Right_Len : Natural)
-      return      Integer
+      Right_Len : Natural) return Integer
    is
       Compare_Len : constant Natural := Natural'Min (Left_Len, Right_Len);
 
index a2dbf51c1294b9d58659ade6d9e4574b48251f4c..97a3bfbdd88c070aabda60fd754cd4fa544c8a51 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2002-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 2002-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 
 --  This package contains functions for runtime comparisons on strings
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.String_Compare is
 
    function Str_Compare
      (Left      : System.Address;
       Right     : System.Address;
       Left_Len  : Natural;
-      Right_Len : Natural)
-      return      Integer;
+      Right_Len : Natural) return Integer;
    --  Compare the string starting at address Left of length Left_Len
    --  with the string starting at address Right of length Right_Len.
    --  The comparison is in the normal Ada semantic sense of string
@@ -52,8 +55,7 @@ package System.String_Compare is
      (Left      : System.Address;
       Right     : System.Address;
       Left_Len  : Natural;
-      Right_Len : Natural)
-      return      Integer;
+      Right_Len : Natural) return Integer;
    --  Same functionality as Str_Compare but always proceeds by bytes.
    --  Used when the caller knows that the operands are unaligned, or
    --  short enough that it makes no sense to go by words.
index e374b0cced3eb622d78c1642f8b297a9613eee86..485d8e16a776d23538fc2bd9b56b79b22c281b91 100755 (executable)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.Strings is
 
    ----------
index 6b32cbf9aeb8fb61c0c73cd311fe9b4ff8fa1939..a2a04b22c23e3d7aff9f5a76ea2823e462f87228 100755 (executable)
 --  be used by other predefined packages. User access to this package is via
 --  a renaming of this package in GNAT.String (file g-string.ads).
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with Ada.Unchecked_Deallocation;
 
 package System.Strings is
index c5552ebc035849ce66a79d0dbd33bd303312d595..4e434726b0716e6debf5a15c8aa2da4fcbe0b574 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.String_Ops is
 
    ----------------
index 6813be737976274ac8d1a2dedf3e2ceff3ffece9..5d4191db7834af1511055332876c163ec9d8c7b7 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  This package contains functions for runtime operations on strings
 --  (other than runtime comparison, found in s-strcom.ads).
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.String_Ops is
    pragma Pure;
 
index e1c52080dd2b2b42b4abd09ae1911e97542c0fd2..50ae913577b9b05d838f287a10f35957d369d8b0 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1999-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1999-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  Note: this unit must be compiled using -fno-optimize-sibling-calls.
 --  See comment below in body of Call_Chain for details on the reason.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.Traceback is
 
    ------------------
index 23e64ff498b926b6230247f8dbea106d67baab16..2ca3b1c733f892a315ed3fe6e5547c2a6e0c10c7 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1999-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1999-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  calls in the call chain, up to either the top or a designated
 --  number of levels.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 pragma Polling (Off);
 --  We must turn polling off for this unit, because otherwise we get
 --  elaboration circularities with System.Exception_Tables.
index 0ff61a2b22d2d94646a150778a0f937aa1c5e49b..becedb4b70647fa8cd5577e16f6fadceb80bc9e8 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2003-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 2003-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.Traceback_Entries is
 
    ------------
index 384c9a0704163418490fdc141a114c98474f0e43..82e26a256814ccf9985f09eb239516b0a80de705 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2003-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 2003-2007, 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 --
 --  version of the package, an entry is a mere code location representing the
 --  address of a call instruction part of the call-chain.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Traceback_Entries is
    pragma Preelaborate;
 
index 8207469a4d73404332dc14e4017e1ace3bebbf8b..c87d651c5d69200573f67ff53aa85bf8a5396903 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  also contains some related definitions for other specialized types
 --  used by the compiler in connection with packed array types.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.Unsigned_Types is
    pragma Pure;
 
index d879d206754fa248bd098e8c4b991da0fc4a4c38..25716e536273261e1496c418dbe87a92f42363bc 100755 (executable)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 pragma Style_Checks (Off);
 --  Allow long lines in this unit
 
index b3a756fb44490e78183213d1c80e2ef8373275d8..8f6fab9c4fd6ca4068482639b8ea7c56488c1712 100755 (executable)
 --  the same services. The reason this package is in System is so that it can
 --  with'ed by other packages in the Ada and System hierarchies.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.UTF_32 is
 
    type UTF_32 is range 0 .. 16#7FFF_FFFF#;
index d293b95269e45b1f007b114b4584c7eb39b3370f..b58290f764be0ed950171146508639229ff63c73 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -31,9 +31,9 @@
 --                                                                          --
 ------------------------------------------------------------------------------
 
---  This package contains generic subprograms used for converting between
---  sequences of Character and Wide_Character. All access to wide character
---  sequences is isolated in this unit.
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
 
 with Interfaces;     use Interfaces;
 with System.WCh_Con; use System.WCh_Con;
index bebf56240ab8e07b30c620e7103740cd0672e584..5c3459f4c262820d2d68aa863cf5377ee43b95f0 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+--  This package contains generic subprograms used for converting between
+--  sequences of Character and Wide_Character. All access to wide character
+--  sequences is isolated in this unit.
+
 --  This unit may be used directly from an application program by providing
 --  an appropriate WITH, and the interface can be expected to remain stable.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 with System.WCh_Con;
 
 package System.WCh_Cnv is
index 5a05dd1f2e40dc59ac6da1817b865da630b285e5..53e20c8436a42fc6c1fcdb0d1039cbd228ad9dda 100755 (executable)
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.WCh_Con is
 
    ----------------------------
index 38b952f3c100fa7f303ec6e770b1c9993d93b00e..8607c19e9511fe2ad72359b05fffbce21338b5d2 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  This unit may be used directly from an application program by providing
 --  an appropriate WITH, and the interface can be expected to remain stable.
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.WCh_Con is
    pragma Pure;
 
index e18d22da3d07a1d01d15b661c7007d9efdfe2a7b..8dbe2dba66f548123bbb061ca7007429fceae343 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --                                                                          --
 ------------------------------------------------------------------------------
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package body System.WCh_JIS is
 
    type Byte is mod 256;
index 45354aeb77181f3c5a241eab9629fec8f6b8efb0..0d70a65f04b6c2b871c8a8289b96fd6afabb3315 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2007, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 --  This package contains routines used for converting between internal
 --  JIS codes and the two external forms we support (EUC and Shift-JIS)
 
+pragma Warnings (Off);
+pragma Compiler_Unit;
+pragma Warnings (On);
+
 package System.WCh_JIS is
    pragma Pure;
 
index 2ea54726b47e4df317fc7c8fd93b0a5c9fdea03d..f6ce93d54435aecd5f86e086556010708de84628 100644 (file)
@@ -527,7 +527,10 @@ package body Sem_Ch11 is
             Set_Is_Raised (Exception_Name);
          end if;
 
+         --  Deal with RAISE WITH case
+
          if Present (Expression (N)) then
+            Check_Compiler_Unit (Expression (N));
             Analyze_And_Resolve (Expression (N), Standard_String);
          end if;
       end if;
index 01f8091cca41bdea64211bd91bffad87bee09a5c..71a3da2fa0ddf47618c8a6e2734059a2869d49be 100644 (file)
@@ -5310,6 +5310,15 @@ package body Sem_Prag is
          when Pragma_Compile_Time_Warning =>
             Process_Compile_Time_Warning_Or_Error;
 
+         -------------------
+         -- Compiler_Unit --
+         -------------------
+
+         when Pragma_Compiler_Unit =>
+            GNAT_Pragma;
+            Check_Arg_Count (0);
+            Set_Is_Compiler_Unit (Get_Source_Unit (N));
+
          -----------------------------
          -- Complete_Representation --
          -----------------------------
@@ -11235,6 +11244,7 @@ package body Sem_Prag is
       Pragma_Common_Object                 => -1,
       Pragma_Compile_Time_Error            => -1,
       Pragma_Compile_Time_Warning          => -1,
+      Pragma_Compiler_Unit                 =>  0,
       Pragma_Complete_Representation       =>  0,
       Pragma_Complex_Representation        =>  0,
       Pragma_Component_Alignment           => -1,
index 5c26cd4362a9ec0c7e30c3a0a8c216d91df97c6d..ce6bdb1f800b9b0397ded55180a835069c53dc5d 100644 (file)
@@ -183,6 +183,7 @@ package body Snames is
      "check_name#" &
      "compile_time_error#" &
      "compile_time_warning#" &
+     "compiler_unit#" &
      "component_alignment#" &
      "convention_identifier#" &
      "debug_policy#" &
index c6632ea663dc07acef09411ff9cc7a1f39b113c4..dd9521a49fe9f29d76f2b015f6ab086c0a3fe0e8 100644 (file)
@@ -344,57 +344,58 @@ package Snames is
    Name_Check_Name                     : constant Name_Id := N + 122; -- GNAT
    Name_Compile_Time_Error             : constant Name_Id := N + 123; -- GNAT
    Name_Compile_Time_Warning           : constant Name_Id := N + 124; -- GNAT
-   Name_Component_Alignment            : constant Name_Id := N + 125; -- GNAT
-   Name_Convention_Identifier          : constant Name_Id := N + 126; -- GNAT
-   Name_Debug_Policy                   : constant Name_Id := N + 127; -- GNAT
-   Name_Detect_Blocking                : constant Name_Id := N + 128; -- Ada 05
-   Name_Discard_Names                  : constant Name_Id := N + 129;
-   Name_Elaboration_Checks             : constant Name_Id := N + 130; -- GNAT
-   Name_Eliminate                      : constant Name_Id := N + 131; -- GNAT
-   Name_Extend_System                  : constant Name_Id := N + 132; -- GNAT
-   Name_Extensions_Allowed             : constant Name_Id := N + 133; -- GNAT
-   Name_External_Name_Casing           : constant Name_Id := N + 134; -- GNAT
-   Name_Float_Representation           : constant Name_Id := N + 135; -- GNAT
-   Name_Implicit_Packing               : constant Name_Id := N + 136; -- GNAT
-   Name_Initialize_Scalars             : constant Name_Id := N + 137; -- GNAT
-   Name_Interrupt_State                : constant Name_Id := N + 138; -- GNAT
-   Name_License                        : constant Name_Id := N + 139; -- GNAT
-   Name_Locking_Policy                 : constant Name_Id := N + 140;
-   Name_Long_Float                     : constant Name_Id := N + 141; -- VMS
-   Name_No_Run_Time                    : constant Name_Id := N + 142; -- GNAT
-   Name_No_Strict_Aliasing             : constant Name_Id := N + 143; -- GNAT
-   Name_Normalize_Scalars              : constant Name_Id := N + 144;
-   Name_Polling                        : constant Name_Id := N + 145; -- GNAT
-   Name_Persistent_BSS                 : constant Name_Id := N + 146; -- GNAT
-   Name_Priority_Specific_Dispatching  : constant Name_Id := N + 147; -- Ada 05
-   Name_Profile                        : constant Name_Id := N + 148; -- Ada 05
-   Name_Profile_Warnings               : constant Name_Id := N + 149; -- GNAT
-   Name_Propagate_Exceptions           : constant Name_Id := N + 150; -- GNAT
-   Name_Queuing_Policy                 : constant Name_Id := N + 151;
-   Name_Ravenscar                      : constant Name_Id := N + 152; -- GNAT
-   Name_Restricted_Run_Time            : constant Name_Id := N + 153; -- GNAT
-   Name_Restrictions                   : constant Name_Id := N + 154;
-   Name_Restriction_Warnings           : constant Name_Id := N + 155; -- GNAT
-   Name_Reviewable                     : constant Name_Id := N + 156;
-   Name_Source_File_Name               : constant Name_Id := N + 157; -- GNAT
-   Name_Source_File_Name_Project       : constant Name_Id := N + 158; -- GNAT
-   Name_Style_Checks                   : constant Name_Id := N + 159; -- GNAT
-   Name_Suppress                       : constant Name_Id := N + 160;
-   Name_Suppress_Exception_Locations   : constant Name_Id := N + 161; -- GNAT
-   Name_Task_Dispatching_Policy        : constant Name_Id := N + 162;
-   Name_Universal_Data                 : constant Name_Id := N + 163; -- AAMP
-   Name_Unsuppress                     : constant Name_Id := N + 164; -- GNAT
-   Name_Use_VADS_Size                  : constant Name_Id := N + 165; -- GNAT
-   Name_Validity_Checks                : constant Name_Id := N + 166; -- GNAT
-   Name_Warnings                       : constant Name_Id := N + 167; -- GNAT
-   Name_Wide_Character_Encoding        : constant Name_Id := N + 168; -- GNAT
-   Last_Configuration_Pragma_Name      : constant Name_Id := N + 168;
+   Name_Compiler_Unit                  : constant Name_Id := N + 125; -- GNAT
+   Name_Component_Alignment            : constant Name_Id := N + 126; -- GNAT
+   Name_Convention_Identifier          : constant Name_Id := N + 127; -- GNAT
+   Name_Debug_Policy                   : constant Name_Id := N + 128; -- GNAT
+   Name_Detect_Blocking                : constant Name_Id := N + 129; -- Ada 05
+   Name_Discard_Names                  : constant Name_Id := N + 130;
+   Name_Elaboration_Checks             : constant Name_Id := N + 131; -- GNAT
+   Name_Eliminate                      : constant Name_Id := N + 132; -- GNAT
+   Name_Extend_System                  : constant Name_Id := N + 133; -- GNAT
+   Name_Extensions_Allowed             : constant Name_Id := N + 134; -- GNAT
+   Name_External_Name_Casing           : constant Name_Id := N + 135; -- GNAT
+   Name_Float_Representation           : constant Name_Id := N + 136; -- GNAT
+   Name_Implicit_Packing               : constant Name_Id := N + 137; -- GNAT
+   Name_Initialize_Scalars             : constant Name_Id := N + 138; -- GNAT
+   Name_Interrupt_State                : constant Name_Id := N + 139; -- GNAT
+   Name_License                        : constant Name_Id := N + 140; -- GNAT
+   Name_Locking_Policy                 : constant Name_Id := N + 141;
+   Name_Long_Float                     : constant Name_Id := N + 142; -- VMS
+   Name_No_Run_Time                    : constant Name_Id := N + 143; -- GNAT
+   Name_No_Strict_Aliasing             : constant Name_Id := N + 144; -- GNAT
+   Name_Normalize_Scalars              : constant Name_Id := N + 145;
+   Name_Polling                        : constant Name_Id := N + 146; -- GNAT
+   Name_Persistent_BSS                 : constant Name_Id := N + 147; -- GNAT
+   Name_Priority_Specific_Dispatching  : constant Name_Id := N + 148; -- Ada 05
+   Name_Profile                        : constant Name_Id := N + 149; -- Ada 05
+   Name_Profile_Warnings               : constant Name_Id := N + 150; -- GNAT
+   Name_Propagate_Exceptions           : constant Name_Id := N + 151; -- GNAT
+   Name_Queuing_Policy                 : constant Name_Id := N + 152;
+   Name_Ravenscar                      : constant Name_Id := N + 153; -- GNAT
+   Name_Restricted_Run_Time            : constant Name_Id := N + 154; -- GNAT
+   Name_Restrictions                   : constant Name_Id := N + 155;
+   Name_Restriction_Warnings           : constant Name_Id := N + 156; -- GNAT
+   Name_Reviewable                     : constant Name_Id := N + 157;
+   Name_Source_File_Name               : constant Name_Id := N + 158; -- GNAT
+   Name_Source_File_Name_Project       : constant Name_Id := N + 159; -- GNAT
+   Name_Style_Checks                   : constant Name_Id := N + 160; -- GNAT
+   Name_Suppress                       : constant Name_Id := N + 161;
+   Name_Suppress_Exception_Locations   : constant Name_Id := N + 162; -- GNAT
+   Name_Task_Dispatching_Policy        : constant Name_Id := N + 163;
+   Name_Universal_Data                 : constant Name_Id := N + 164; -- AAMP
+   Name_Unsuppress                     : constant Name_Id := N + 165; -- GNAT
+   Name_Use_VADS_Size                  : constant Name_Id := N + 166; -- GNAT
+   Name_Validity_Checks                : constant Name_Id := N + 167; -- GNAT
+   Name_Warnings                       : constant Name_Id := N + 168; -- GNAT
+   Name_Wide_Character_Encoding        : constant Name_Id := N + 169; -- GNAT
+   Last_Configuration_Pragma_Name      : constant Name_Id := N + 169;
 
    --  Remaining pragma names
 
-   Name_Abort_Defer                    : constant Name_Id := N + 169; -- GNAT
-   Name_All_Calls_Remote               : constant Name_Id := N + 170;
-   Name_Annotate                       : constant Name_Id := N + 171; -- GNAT
+   Name_Abort_Defer                    : constant Name_Id := N + 170; -- GNAT
+   Name_All_Calls_Remote               : constant Name_Id := N + 171;
+   Name_Annotate                       : constant Name_Id := N + 172; -- 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
@@ -402,73 +403,73 @@ 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 + 172; -- Ada 05
-   Name_Asynchronous                   : constant Name_Id := N + 173;
-   Name_Atomic                         : constant Name_Id := N + 174;
-   Name_Atomic_Components              : constant Name_Id := N + 175;
-   Name_Attach_Handler                 : constant Name_Id := N + 176;
-   Name_CIL_Constructor                : constant Name_Id := N + 177; -- GNAT
-   Name_Comment                        : constant Name_Id := N + 178; -- GNAT
-   Name_Common_Object                  : constant Name_Id := N + 179; -- GNAT
-   Name_Complete_Representation        : constant Name_Id := N + 180; -- GNAT
-   Name_Complex_Representation         : constant Name_Id := N + 181; -- GNAT
-   Name_Controlled                     : constant Name_Id := N + 182;
-   Name_Convention                     : constant Name_Id := N + 183;
-   Name_CPP_Class                      : constant Name_Id := N + 184; -- GNAT
-   Name_CPP_Constructor                : constant Name_Id := N + 185; -- GNAT
-   Name_CPP_Virtual                    : constant Name_Id := N + 186; -- GNAT
-   Name_CPP_Vtable                     : constant Name_Id := N + 187; -- GNAT
-   Name_Debug                          : constant Name_Id := N + 188; -- GNAT
-   Name_Elaborate                      : constant Name_Id := N + 189; -- Ada 83
-   Name_Elaborate_All                  : constant Name_Id := N + 190;
-   Name_Elaborate_Body                 : constant Name_Id := N + 191;
-   Name_Export                         : constant Name_Id := N + 192;
-   Name_Export_Exception               : constant Name_Id := N + 193; -- VMS
-   Name_Export_Function                : constant Name_Id := N + 194; -- GNAT
-   Name_Export_Object                  : constant Name_Id := N + 195; -- GNAT
-   Name_Export_Procedure               : constant Name_Id := N + 196; -- GNAT
-   Name_Export_Value                   : constant Name_Id := N + 197; -- GNAT
-   Name_Export_Valued_Procedure        : constant Name_Id := N + 198; -- GNAT
-   Name_External                       : constant Name_Id := N + 199; -- GNAT
-   Name_Finalize_Storage_Only          : constant Name_Id := N + 200; -- GNAT
-   Name_Ident                          : constant Name_Id := N + 201; -- VMS
-   Name_Import                         : constant Name_Id := N + 202;
-   Name_Import_Exception               : constant Name_Id := N + 203; -- VMS
-   Name_Import_Function                : constant Name_Id := N + 204; -- GNAT
-   Name_Import_Object                  : constant Name_Id := N + 205; -- GNAT
-   Name_Import_Procedure               : constant Name_Id := N + 206; -- GNAT
-   Name_Import_Valued_Procedure        : constant Name_Id := N + 207; -- GNAT
-   Name_Inline                         : constant Name_Id := N + 208;
-   Name_Inline_Always                  : constant Name_Id := N + 209; -- GNAT
-   Name_Inline_Generic                 : constant Name_Id := N + 210; -- GNAT
-   Name_Inspection_Point               : constant Name_Id := N + 211;
-   Name_Interface_Name                 : constant Name_Id := N + 212; -- GNAT
-   Name_Interrupt_Handler              : constant Name_Id := N + 213;
-   Name_Interrupt_Priority             : constant Name_Id := N + 214;
-   Name_Java_Constructor               : constant Name_Id := N + 215; -- GNAT
-   Name_Java_Interface                 : constant Name_Id := N + 216; -- GNAT
-   Name_Keep_Names                     : constant Name_Id := N + 217; -- GNAT
-   Name_Link_With                      : constant Name_Id := N + 218; -- GNAT
-   Name_Linker_Alias                   : constant Name_Id := N + 219; -- GNAT
-   Name_Linker_Constructor             : constant Name_Id := N + 220; -- GNAT
-   Name_Linker_Destructor              : constant Name_Id := N + 221; -- GNAT
-   Name_Linker_Options                 : constant Name_Id := N + 222;
-   Name_Linker_Section                 : constant Name_Id := N + 223; -- GNAT
-   Name_List                           : constant Name_Id := N + 224;
-   Name_Machine_Attribute              : constant Name_Id := N + 225; -- GNAT
-   Name_Main                           : constant Name_Id := N + 226; -- GNAT
-   Name_Main_Storage                   : constant Name_Id := N + 227; -- GNAT
-   Name_Memory_Size                    : constant Name_Id := N + 228; -- Ada 83
-   Name_No_Body                        : constant Name_Id := N + 229; -- GNAT
-   Name_No_Return                      : constant Name_Id := N + 230; -- GNAT
-   Name_Obsolescent                    : constant Name_Id := N + 231; -- GNAT
-   Name_Optimize                       : constant Name_Id := N + 232;
-   Name_Pack                           : constant Name_Id := N + 233;
-   Name_Page                           : constant Name_Id := N + 234;
-   Name_Passive                        : constant Name_Id := N + 235; -- GNAT
-   Name_Preelaborable_Initialization   : constant Name_Id := N + 236; -- Ada 05
-   Name_Preelaborate                   : constant Name_Id := N + 237;
-   Name_Preelaborate_05                : constant Name_Id := N + 238; -- GNAT
+   Name_Assert                         : constant Name_Id := N + 173; -- Ada 05
+   Name_Asynchronous                   : constant Name_Id := N + 174;
+   Name_Atomic                         : constant Name_Id := N + 175;
+   Name_Atomic_Components              : constant Name_Id := N + 176;
+   Name_Attach_Handler                 : constant Name_Id := N + 177;
+   Name_CIL_Constructor                : constant Name_Id := N + 178; -- GNAT
+   Name_Comment                        : constant Name_Id := N + 179; -- GNAT
+   Name_Common_Object                  : constant Name_Id := N + 180; -- GNAT
+   Name_Complete_Representation        : constant Name_Id := N + 181; -- GNAT
+   Name_Complex_Representation         : constant Name_Id := N + 182; -- GNAT
+   Name_Controlled                     : constant Name_Id := N + 183;
+   Name_Convention                     : constant Name_Id := N + 184;
+   Name_CPP_Class                      : constant Name_Id := N + 185; -- GNAT
+   Name_CPP_Constructor                : constant Name_Id := N + 186; -- GNAT
+   Name_CPP_Virtual                    : constant Name_Id := N + 187; -- GNAT
+   Name_CPP_Vtable                     : constant Name_Id := N + 188; -- GNAT
+   Name_Debug                          : constant Name_Id := N + 189; -- GNAT
+   Name_Elaborate                      : constant Name_Id := N + 190; -- Ada 83
+   Name_Elaborate_All                  : constant Name_Id := N + 191;
+   Name_Elaborate_Body                 : constant Name_Id := N + 192;
+   Name_Export                         : constant Name_Id := N + 193;
+   Name_Export_Exception               : constant Name_Id := N + 194; -- VMS
+   Name_Export_Function                : constant Name_Id := N + 195; -- GNAT
+   Name_Export_Object                  : constant Name_Id := N + 196; -- GNAT
+   Name_Export_Procedure               : constant Name_Id := N + 197; -- GNAT
+   Name_Export_Value                   : constant Name_Id := N + 198; -- GNAT
+   Name_Export_Valued_Procedure        : constant Name_Id := N + 199; -- GNAT
+   Name_External                       : constant Name_Id := N + 200; -- GNAT
+   Name_Finalize_Storage_Only          : constant Name_Id := N + 201; -- GNAT
+   Name_Ident                          : constant Name_Id := N + 202; -- VMS
+   Name_Import                         : constant Name_Id := N + 203;
+   Name_Import_Exception               : constant Name_Id := N + 204; -- VMS
+   Name_Import_Function                : constant Name_Id := N + 205; -- GNAT
+   Name_Import_Object                  : constant Name_Id := N + 206; -- GNAT
+   Name_Import_Procedure               : constant Name_Id := N + 207; -- GNAT
+   Name_Import_Valued_Procedure        : constant Name_Id := N + 208; -- GNAT
+   Name_Inline                         : constant Name_Id := N + 209;
+   Name_Inline_Always                  : constant Name_Id := N + 210; -- GNAT
+   Name_Inline_Generic                 : constant Name_Id := N + 211; -- GNAT
+   Name_Inspection_Point               : constant Name_Id := N + 212;
+   Name_Interface_Name                 : constant Name_Id := N + 213; -- GNAT
+   Name_Interrupt_Handler              : constant Name_Id := N + 214;
+   Name_Interrupt_Priority             : constant Name_Id := N + 215;
+   Name_Java_Constructor               : constant Name_Id := N + 216; -- GNAT
+   Name_Java_Interface                 : constant Name_Id := N + 217; -- GNAT
+   Name_Keep_Names                     : constant Name_Id := N + 218; -- GNAT
+   Name_Link_With                      : constant Name_Id := N + 219; -- GNAT
+   Name_Linker_Alias                   : constant Name_Id := N + 220; -- GNAT
+   Name_Linker_Constructor             : constant Name_Id := N + 221; -- GNAT
+   Name_Linker_Destructor              : constant Name_Id := N + 222; -- GNAT
+   Name_Linker_Options                 : constant Name_Id := N + 223;
+   Name_Linker_Section                 : constant Name_Id := N + 224; -- GNAT
+   Name_List                           : constant Name_Id := N + 225;
+   Name_Machine_Attribute              : constant Name_Id := N + 226; -- GNAT
+   Name_Main                           : constant Name_Id := N + 227; -- GNAT
+   Name_Main_Storage                   : constant Name_Id := N + 228; -- GNAT
+   Name_Memory_Size                    : constant Name_Id := N + 229; -- Ada 83
+   Name_No_Body                        : constant Name_Id := N + 230; -- GNAT
+   Name_No_Return                      : constant Name_Id := N + 231; -- GNAT
+   Name_Obsolescent                    : constant Name_Id := N + 232; -- GNAT
+   Name_Optimize                       : constant Name_Id := N + 233;
+   Name_Pack                           : constant Name_Id := N + 234;
+   Name_Page                           : constant Name_Id := N + 235;
+   Name_Passive                        : constant Name_Id := N + 236; -- GNAT
+   Name_Preelaborable_Initialization   : constant Name_Id := N + 237; -- Ada 05
+   Name_Preelaborate                   : constant Name_Id := N + 238;
+   Name_Preelaborate_05                : constant Name_Id := N + 239; -- GNAT
 
    --  Note: Priority is not in this list because its name matches the
    --  name of the corresponding attribute. However, it is included in the
@@ -476,15 +477,15 @@ package Snames is
    --  and Check_Pragma_Id correctly recognize and process Priority.
    --  Priority is a standard Ada 95 pragma.
 
-   Name_Psect_Object                   : constant Name_Id := N + 239; -- VMS
-   Name_Pure                           : constant Name_Id := N + 240;
-   Name_Pure_05                        : constant Name_Id := N + 241; -- GNAT
-   Name_Pure_Function                  : constant Name_Id := N + 242; -- GNAT
-   Name_Remote_Call_Interface          : constant Name_Id := N + 243;
-   Name_Remote_Types                   : constant Name_Id := N + 244;
-   Name_Share_Generic                  : constant Name_Id := N + 245; -- GNAT
-   Name_Shared                         : constant Name_Id := N + 246; -- Ada 83
-   Name_Shared_Passive                 : constant Name_Id := N + 247;
+   Name_Psect_Object                   : constant Name_Id := N + 240; -- VMS
+   Name_Pure                           : constant Name_Id := N + 241;
+   Name_Pure_05                        : constant Name_Id := N + 242; -- GNAT
+   Name_Pure_Function                  : constant Name_Id := N + 243; -- GNAT
+   Name_Remote_Call_Interface          : constant Name_Id := N + 244;
+   Name_Remote_Types                   : constant Name_Id := N + 245;
+   Name_Share_Generic                  : constant Name_Id := N + 246; -- GNAT
+   Name_Shared                         : constant Name_Id := N + 247; -- Ada 83
+   Name_Shared_Passive                 : constant Name_Id := N + 248;
 
    --  Note: Storage_Size is not in this list because its name matches the
    --  name of the corresponding attribute. However, it is included in the
@@ -494,29 +495,29 @@ 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 + 248; -- GNAT
-   Name_Static_Elaboration_Desired     : constant Name_Id := N + 249; -- GNAT
-   Name_Stream_Convert                 : constant Name_Id := N + 250; -- GNAT
-   Name_Subtitle                       : constant Name_Id := N + 251; -- GNAT
-   Name_Suppress_All                   : constant Name_Id := N + 252; -- GNAT
-   Name_Suppress_Debug_Info            : constant Name_Id := N + 253; -- GNAT
-   Name_Suppress_Initialization        : constant Name_Id := N + 254; -- GNAT
-   Name_System_Name                    : constant Name_Id := N + 255; -- Ada 83
-   Name_Task_Info                      : constant Name_Id := N + 256; -- GNAT
-   Name_Task_Name                      : constant Name_Id := N + 257; -- GNAT
-   Name_Task_Storage                   : constant Name_Id := N + 258; -- VMS
-   Name_Time_Slice                     : constant Name_Id := N + 259; -- GNAT
-   Name_Title                          : constant Name_Id := N + 260; -- GNAT
-   Name_Unchecked_Union                : constant Name_Id := N + 261; -- GNAT
-   Name_Unimplemented_Unit             : constant Name_Id := N + 262; -- GNAT
-   Name_Universal_Aliasing             : constant Name_Id := N + 263; -- GNAT
-   Name_Unreferenced                   : constant Name_Id := N + 264; -- GNAT
-   Name_Unreferenced_Objects           : constant Name_Id := N + 265; -- GNAT
-   Name_Unreserve_All_Interrupts       : constant Name_Id := N + 266; -- GNAT
-   Name_Volatile                       : constant Name_Id := N + 267;
-   Name_Volatile_Components            : constant Name_Id := N + 268;
-   Name_Weak_External                  : constant Name_Id := N + 269; -- GNAT
-   Last_Pragma_Name                    : constant Name_Id := N + 269;
+   Name_Source_Reference               : constant Name_Id := N + 249; -- GNAT
+   Name_Static_Elaboration_Desired     : constant Name_Id := N + 250; -- GNAT
+   Name_Stream_Convert                 : constant Name_Id := N + 251; -- GNAT
+   Name_Subtitle                       : constant Name_Id := N + 252; -- GNAT
+   Name_Suppress_All                   : constant Name_Id := N + 253; -- GNAT
+   Name_Suppress_Debug_Info            : constant Name_Id := N + 254; -- GNAT
+   Name_Suppress_Initialization        : constant Name_Id := N + 255; -- GNAT
+   Name_System_Name                    : constant Name_Id := N + 256; -- Ada 83
+   Name_Task_Info                      : constant Name_Id := N + 257; -- GNAT
+   Name_Task_Name                      : constant Name_Id := N + 258; -- GNAT
+   Name_Task_Storage                   : constant Name_Id := N + 259; -- VMS
+   Name_Time_Slice                     : constant Name_Id := N + 260; -- GNAT
+   Name_Title                          : constant Name_Id := N + 261; -- GNAT
+   Name_Unchecked_Union                : constant Name_Id := N + 262; -- GNAT
+   Name_Unimplemented_Unit             : constant Name_Id := N + 263; -- GNAT
+   Name_Universal_Aliasing             : constant Name_Id := N + 264; -- GNAT
+   Name_Unreferenced                   : constant Name_Id := N + 265; -- GNAT
+   Name_Unreferenced_Objects           : constant Name_Id := N + 266; -- GNAT
+   Name_Unreserve_All_Interrupts       : constant Name_Id := N + 267; -- GNAT
+   Name_Volatile                       : constant Name_Id := N + 268;
+   Name_Volatile_Components            : constant Name_Id := N + 269;
+   Name_Weak_External                  : constant Name_Id := N + 270; -- GNAT
+   Last_Pragma_Name                    : constant Name_Id := N + 270;
 
    --  Language convention names for pragma Convention/Export/Import/Interface
    --  Note that Name_C is not included in this list, since it was already
@@ -527,119 +528,119 @@ package Snames is
    --  Entry and Protected, this is because these conventions cannot be
    --  specified by a pragma.
 
-   First_Convention_Name               : constant Name_Id := N + 270;
-   Name_Ada                            : constant Name_Id := N + 270;
-   Name_Assembler                      : constant Name_Id := N + 271;
-   Name_CIL                            : constant Name_Id := N + 272;
-   Name_COBOL                          : constant Name_Id := N + 273;
-   Name_CPP                            : constant Name_Id := N + 274;
-   Name_Fortran                        : constant Name_Id := N + 275;
-   Name_Intrinsic                      : constant Name_Id := N + 276;
-   Name_Java                           : constant Name_Id := N + 277;
-   Name_Stdcall                        : constant Name_Id := N + 278;
-   Name_Stubbed                        : constant Name_Id := N + 279;
-   Last_Convention_Name                : constant Name_Id := N + 279;
+   First_Convention_Name               : constant Name_Id := N + 271;
+   Name_Ada                            : constant Name_Id := N + 271;
+   Name_Assembler                      : constant Name_Id := N + 272;
+   Name_CIL                            : constant Name_Id := N + 273;
+   Name_COBOL                          : constant Name_Id := N + 274;
+   Name_CPP                            : constant Name_Id := N + 275;
+   Name_Fortran                        : constant Name_Id := N + 276;
+   Name_Intrinsic                      : constant Name_Id := N + 277;
+   Name_Java                           : constant Name_Id := N + 278;
+   Name_Stdcall                        : constant Name_Id := N + 279;
+   Name_Stubbed                        : constant Name_Id := N + 280;
+   Last_Convention_Name                : constant Name_Id := N + 280;
 
    --  The following names are preset as synonyms for Assembler
 
-   Name_Asm                            : constant Name_Id := N + 280;
-   Name_Assembly                       : constant Name_Id := N + 281;
+   Name_Asm                            : constant Name_Id := N + 281;
+   Name_Assembly                       : constant Name_Id := N + 282;
 
    --  The following names are preset as synonyms for C
 
-   Name_Default                        : constant Name_Id := N + 282;
+   Name_Default                        : constant Name_Id := N + 283;
    --  Name_Exernal (previously defined as pragma)
 
    --  The following names are preset as synonyms for CPP
 
-   Name_C_Plus_Plus                    : constant Name_Id := N + 283;
+   Name_C_Plus_Plus                    : constant Name_Id := N + 284;
 
    --  The following names are present as synonyms for Stdcall
 
-   Name_DLL                            : constant Name_Id := N + 284;
-   Name_Win32                          : constant Name_Id := N + 285;
+   Name_DLL                            : constant Name_Id := N + 285;
+   Name_Win32                          : constant Name_Id := N + 286;
 
    --  Other special names used in processing pragmas
 
-   Name_As_Is                          : constant Name_Id := N + 286;
-   Name_Attribute_Name                 : constant Name_Id := N + 287;
-   Name_Body_File_Name                 : constant Name_Id := N + 288;
-   Name_Boolean_Entry_Barriers         : constant Name_Id := N + 289;
-   Name_Check                          : constant Name_Id := N + 290;
-   Name_Casing                         : constant Name_Id := N + 291;
-   Name_Code                           : constant Name_Id := N + 292;
-   Name_Component                      : constant Name_Id := N + 293;
-   Name_Component_Size_4               : constant Name_Id := N + 294;
-   Name_Copy                           : constant Name_Id := N + 295;
-   Name_D_Float                        : constant Name_Id := N + 296;
-   Name_Descriptor                     : constant Name_Id := N + 297;
-   Name_Dot_Replacement                : constant Name_Id := N + 298;
-   Name_Dynamic                        : constant Name_Id := N + 299;
-   Name_Entity                         : constant Name_Id := N + 300;
-   Name_Entry_Count                    : constant Name_Id := N + 301;
-   Name_External_Name                  : constant Name_Id := N + 302;
-   Name_First_Optional_Parameter       : constant Name_Id := N + 303;
-   Name_Form                           : constant Name_Id := N + 304;
-   Name_G_Float                        : constant Name_Id := N + 305;
-   Name_Gcc                            : constant Name_Id := N + 306;
-   Name_Gnat                           : constant Name_Id := N + 307;
-   Name_GPL                            : constant Name_Id := N + 308;
-   Name_IEEE_Float                     : constant Name_Id := N + 309;
-   Name_Ignore                         : constant Name_Id := N + 310;
-   Name_Info                           : constant Name_Id := N + 311;
-   Name_Internal                       : constant Name_Id := N + 312;
-   Name_Link_Name                      : constant Name_Id := N + 313;
-   Name_Lowercase                      : constant Name_Id := N + 314;
-   Name_Max_Entry_Queue_Depth          : constant Name_Id := N + 315;
-   Name_Max_Entry_Queue_Length         : constant Name_Id := N + 316;
-   Name_Max_Size                       : constant Name_Id := N + 317;
-   Name_Mechanism                      : constant Name_Id := N + 318;
-   Name_Message                        : constant Name_Id := N + 319;
-   Name_Mixedcase                      : constant Name_Id := N + 320;
-   Name_Modified_GPL                   : constant Name_Id := N + 321;
-   Name_Name                           : constant Name_Id := N + 322;
-   Name_NCA                            : constant Name_Id := N + 323;
-   Name_No                             : constant Name_Id := N + 324;
-   Name_No_Dependence                  : constant Name_Id := N + 325;
-   Name_No_Dynamic_Attachment          : constant Name_Id := N + 326;
-   Name_No_Dynamic_Interrupts          : constant Name_Id := N + 327;
-   Name_No_Requeue                     : constant Name_Id := N + 328;
-   Name_No_Requeue_Statements          : constant Name_Id := N + 329;
-   Name_No_Task_Attributes             : constant Name_Id := N + 330;
-   Name_No_Task_Attributes_Package     : constant Name_Id := N + 331;
-   Name_On                             : constant Name_Id := N + 332;
-   Name_Parameter_Types                : constant Name_Id := N + 333;
-   Name_Reference                      : constant Name_Id := N + 334;
-   Name_Restricted                     : constant Name_Id := N + 335;
-   Name_Result_Mechanism               : constant Name_Id := N + 336;
-   Name_Result_Type                    : constant Name_Id := N + 337;
-   Name_Runtime                        : constant Name_Id := N + 338;
-   Name_SB                             : constant Name_Id := N + 339;
-   Name_Secondary_Stack_Size           : constant Name_Id := N + 340;
-   Name_Section                        : constant Name_Id := N + 341;
-   Name_Semaphore                      : constant Name_Id := N + 342;
-   Name_Simple_Barriers                : constant Name_Id := N + 343;
-   Name_Spec_File_Name                 : constant Name_Id := N + 344;
-   Name_State                          : constant Name_Id := N + 345;
-   Name_Static                         : constant Name_Id := N + 346;
-   Name_Stack_Size                     : constant Name_Id := N + 347;
-   Name_Subunit_File_Name              : constant Name_Id := N + 348;
-   Name_Task_Stack_Size_Default        : constant Name_Id := N + 349;
-   Name_Task_Type                      : constant Name_Id := N + 350;
-   Name_Time_Slicing_Enabled           : constant Name_Id := N + 351;
-   Name_Top_Guard                      : constant Name_Id := N + 352;
-   Name_UBA                            : constant Name_Id := N + 353;
-   Name_UBS                            : constant Name_Id := N + 354;
-   Name_UBSB                           : constant Name_Id := N + 355;
-   Name_Unit_Name                      : constant Name_Id := N + 356;
-   Name_Unknown                        : constant Name_Id := N + 357;
-   Name_Unrestricted                   : constant Name_Id := N + 358;
-   Name_Uppercase                      : constant Name_Id := N + 359;
-   Name_User                           : constant Name_Id := N + 360;
-   Name_VAX_Float                      : constant Name_Id := N + 361;
-   Name_VMS                            : constant Name_Id := N + 362;
-   Name_Vtable_Ptr                     : constant Name_Id := N + 363;
-   Name_Working_Storage                : constant Name_Id := N + 364;
+   Name_As_Is                          : constant Name_Id := N + 287;
+   Name_Attribute_Name                 : constant Name_Id := N + 288;
+   Name_Body_File_Name                 : constant Name_Id := N + 289;
+   Name_Boolean_Entry_Barriers         : constant Name_Id := N + 290;
+   Name_Check                          : constant Name_Id := N + 291;
+   Name_Casing                         : constant Name_Id := N + 292;
+   Name_Code                           : constant Name_Id := N + 293;
+   Name_Component                      : constant Name_Id := N + 294;
+   Name_Component_Size_4               : constant Name_Id := N + 295;
+   Name_Copy                           : constant Name_Id := N + 296;
+   Name_D_Float                        : constant Name_Id := N + 297;
+   Name_Descriptor                     : constant Name_Id := N + 298;
+   Name_Dot_Replacement                : constant Name_Id := N + 299;
+   Name_Dynamic                        : constant Name_Id := N + 300;
+   Name_Entity                         : constant Name_Id := N + 301;
+   Name_Entry_Count                    : constant Name_Id := N + 302;
+   Name_External_Name                  : constant Name_Id := N + 303;
+   Name_First_Optional_Parameter       : constant Name_Id := N + 304;
+   Name_Form                           : constant Name_Id := N + 305;
+   Name_G_Float                        : constant Name_Id := N + 306;
+   Name_Gcc                            : constant Name_Id := N + 307;
+   Name_Gnat                           : constant Name_Id := N + 308;
+   Name_GPL                            : constant Name_Id := N + 309;
+   Name_IEEE_Float                     : constant Name_Id := N + 310;
+   Name_Ignore                         : constant Name_Id := N + 311;
+   Name_Info                           : constant Name_Id := N + 312;
+   Name_Internal                       : constant Name_Id := N + 313;
+   Name_Link_Name                      : constant Name_Id := N + 314;
+   Name_Lowercase                      : constant Name_Id := N + 315;
+   Name_Max_Entry_Queue_Depth          : constant Name_Id := N + 316;
+   Name_Max_Entry_Queue_Length         : constant Name_Id := N + 317;
+   Name_Max_Size                       : constant Name_Id := N + 318;
+   Name_Mechanism                      : constant Name_Id := N + 319;
+   Name_Message                        : constant Name_Id := N + 320;
+   Name_Mixedcase                      : constant Name_Id := N + 321;
+   Name_Modified_GPL                   : constant Name_Id := N + 322;
+   Name_Name                           : constant Name_Id := N + 323;
+   Name_NCA                            : constant Name_Id := N + 324;
+   Name_No                             : constant Name_Id := N + 325;
+   Name_No_Dependence                  : constant Name_Id := N + 326;
+   Name_No_Dynamic_Attachment          : constant Name_Id := N + 327;
+   Name_No_Dynamic_Interrupts          : constant Name_Id := N + 328;
+   Name_No_Requeue                     : constant Name_Id := N + 329;
+   Name_No_Requeue_Statements          : constant Name_Id := N + 330;
+   Name_No_Task_Attributes             : constant Name_Id := N + 331;
+   Name_No_Task_Attributes_Package     : constant Name_Id := N + 332;
+   Name_On                             : constant Name_Id := N + 333;
+   Name_Parameter_Types                : constant Name_Id := N + 334;
+   Name_Reference                      : constant Name_Id := N + 335;
+   Name_Restricted                     : constant Name_Id := N + 336;
+   Name_Result_Mechanism               : constant Name_Id := N + 337;
+   Name_Result_Type                    : constant Name_Id := N + 338;
+   Name_Runtime                        : constant Name_Id := N + 339;
+   Name_SB                             : constant Name_Id := N + 340;
+   Name_Secondary_Stack_Size           : constant Name_Id := N + 341;
+   Name_Section                        : constant Name_Id := N + 342;
+   Name_Semaphore                      : constant Name_Id := N + 343;
+   Name_Simple_Barriers                : constant Name_Id := N + 344;
+   Name_Spec_File_Name                 : constant Name_Id := N + 345;
+   Name_State                          : constant Name_Id := N + 346;
+   Name_Static                         : constant Name_Id := N + 347;
+   Name_Stack_Size                     : constant Name_Id := N + 348;
+   Name_Subunit_File_Name              : constant Name_Id := N + 349;
+   Name_Task_Stack_Size_Default        : constant Name_Id := N + 350;
+   Name_Task_Type                      : constant Name_Id := N + 351;
+   Name_Time_Slicing_Enabled           : constant Name_Id := N + 352;
+   Name_Top_Guard                      : constant Name_Id := N + 353;
+   Name_UBA                            : constant Name_Id := N + 354;
+   Name_UBS                            : constant Name_Id := N + 355;
+   Name_UBSB                           : constant Name_Id := N + 356;
+   Name_Unit_Name                      : constant Name_Id := N + 357;
+   Name_Unknown                        : constant Name_Id := N + 358;
+   Name_Unrestricted                   : constant Name_Id := N + 359;
+   Name_Uppercase                      : constant Name_Id := N + 360;
+   Name_User                           : constant Name_Id := N + 361;
+   Name_VAX_Float                      : constant Name_Id := N + 362;
+   Name_VMS                            : constant Name_Id := N + 363;
+   Name_Vtable_Ptr                     : constant Name_Id := N + 364;
+   Name_Working_Storage                : constant Name_Id := N + 365;
 
    --  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
@@ -653,169 +654,169 @@ 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 + 365;
-   Name_Abort_Signal                   : constant Name_Id := N + 365; -- GNAT
-   Name_Access                         : constant Name_Id := N + 366;
-   Name_Address                        : constant Name_Id := N + 367;
-   Name_Address_Size                   : constant Name_Id := N + 368; -- GNAT
-   Name_Aft                            : constant Name_Id := N + 369;
-   Name_Alignment                      : constant Name_Id := N + 370;
-   Name_Asm_Input                      : constant Name_Id := N + 371; -- GNAT
-   Name_Asm_Output                     : constant Name_Id := N + 372; -- GNAT
-   Name_AST_Entry                      : constant Name_Id := N + 373; -- VMS
-   Name_Bit                            : constant Name_Id := N + 374; -- GNAT
-   Name_Bit_Order                      : constant Name_Id := N + 375;
-   Name_Bit_Position                   : constant Name_Id := N + 376; -- GNAT
-   Name_Body_Version                   : constant Name_Id := N + 377;
-   Name_Callable                       : constant Name_Id := N + 378;
-   Name_Caller                         : constant Name_Id := N + 379;
-   Name_Code_Address                   : constant Name_Id := N + 380; -- GNAT
-   Name_Component_Size                 : constant Name_Id := N + 381;
-   Name_Compose                        : constant Name_Id := N + 382;
-   Name_Constrained                    : constant Name_Id := N + 383;
-   Name_Count                          : constant Name_Id := N + 384;
-   Name_Default_Bit_Order              : constant Name_Id := N + 385; -- GNAT
-   Name_Definite                       : constant Name_Id := N + 386;
-   Name_Delta                          : constant Name_Id := N + 387;
-   Name_Denorm                         : constant Name_Id := N + 388;
-   Name_Digits                         : constant Name_Id := N + 389;
-   Name_Elaborated                     : constant Name_Id := N + 390; -- GNAT
-   Name_Emax                           : constant Name_Id := N + 391; -- Ada 83
-   Name_Enabled                        : constant Name_Id := N + 392; -- GNAT
-   Name_Enum_Rep                       : constant Name_Id := N + 393; -- GNAT
-   Name_Epsilon                        : constant Name_Id := N + 394; -- Ada 83
-   Name_Exponent                       : constant Name_Id := N + 395;
-   Name_External_Tag                   : constant Name_Id := N + 396;
-   Name_First                          : constant Name_Id := N + 397;
-   Name_First_Bit                      : constant Name_Id := N + 398;
-   Name_Fixed_Value                    : constant Name_Id := N + 399; -- GNAT
-   Name_Fore                           : constant Name_Id := N + 400;
-   Name_Has_Access_Values              : constant Name_Id := N + 401; -- GNAT
-   Name_Has_Discriminants              : constant Name_Id := N + 402; -- GNAT
-   Name_Identity                       : constant Name_Id := N + 403;
-   Name_Img                            : constant Name_Id := N + 404; -- GNAT
-   Name_Integer_Value                  : constant Name_Id := N + 405; -- GNAT
-   Name_Large                          : constant Name_Id := N + 406; -- Ada 83
-   Name_Last                           : constant Name_Id := N + 407;
-   Name_Last_Bit                       : constant Name_Id := N + 408;
-   Name_Leading_Part                   : constant Name_Id := N + 409;
-   Name_Length                         : constant Name_Id := N + 410;
-   Name_Machine_Emax                   : constant Name_Id := N + 411;
-   Name_Machine_Emin                   : constant Name_Id := N + 412;
-   Name_Machine_Mantissa               : constant Name_Id := N + 413;
-   Name_Machine_Overflows              : constant Name_Id := N + 414;
-   Name_Machine_Radix                  : constant Name_Id := N + 415;
-   Name_Machine_Rounding               : constant Name_Id := N + 416; -- Ada 05
-   Name_Machine_Rounds                 : constant Name_Id := N + 417;
-   Name_Machine_Size                   : constant Name_Id := N + 418; -- GNAT
-   Name_Mantissa                       : constant Name_Id := N + 419; -- Ada 83
-   Name_Max_Size_In_Storage_Elements   : constant Name_Id := N + 420;
-   Name_Maximum_Alignment              : constant Name_Id := N + 421; -- GNAT
-   Name_Mechanism_Code                 : constant Name_Id := N + 422; -- GNAT
-   Name_Mod                            : constant Name_Id := N + 423; -- Ada 05
-   Name_Model_Emin                     : constant Name_Id := N + 424;
-   Name_Model_Epsilon                  : constant Name_Id := N + 425;
-   Name_Model_Mantissa                 : constant Name_Id := N + 426;
-   Name_Model_Small                    : constant Name_Id := N + 427;
-   Name_Modulus                        : constant Name_Id := N + 428;
-   Name_Null_Parameter                 : constant Name_Id := N + 429; -- GNAT
-   Name_Object_Size                    : constant Name_Id := N + 430; -- GNAT
-   Name_Partition_ID                   : constant Name_Id := N + 431;
-   Name_Passed_By_Reference            : constant Name_Id := N + 432; -- GNAT
-   Name_Pool_Address                   : constant Name_Id := N + 433;
-   Name_Pos                            : constant Name_Id := N + 434;
-   Name_Position                       : constant Name_Id := N + 435;
-   Name_Priority                       : constant Name_Id := N + 436; -- Ada 05
-   Name_Range                          : constant Name_Id := N + 437;
-   Name_Range_Length                   : constant Name_Id := N + 438; -- GNAT
-   Name_Round                          : constant Name_Id := N + 439;
-   Name_Safe_Emax                      : constant Name_Id := N + 440; -- Ada 83
-   Name_Safe_First                     : constant Name_Id := N + 441;
-   Name_Safe_Large                     : constant Name_Id := N + 442; -- Ada 83
-   Name_Safe_Last                      : constant Name_Id := N + 443;
-   Name_Safe_Small                     : constant Name_Id := N + 444; -- Ada 83
-   Name_Scale                          : constant Name_Id := N + 445;
-   Name_Scaling                        : constant Name_Id := N + 446;
-   Name_Signed_Zeros                   : constant Name_Id := N + 447;
-   Name_Size                           : constant Name_Id := N + 448;
-   Name_Small                          : constant Name_Id := N + 449;
-   Name_Storage_Size                   : constant Name_Id := N + 450;
-   Name_Storage_Unit                   : constant Name_Id := N + 451; -- GNAT
-   Name_Stream_Size                    : constant Name_Id := N + 452; -- Ada 05
-   Name_Tag                            : constant Name_Id := N + 453;
-   Name_Target_Name                    : constant Name_Id := N + 454; -- GNAT
-   Name_Terminated                     : constant Name_Id := N + 455;
-   Name_To_Address                     : constant Name_Id := N + 456; -- GNAT
-   Name_Type_Class                     : constant Name_Id := N + 457; -- GNAT
-   Name_UET_Address                    : constant Name_Id := N + 458; -- GNAT
-   Name_Unbiased_Rounding              : constant Name_Id := N + 459;
-   Name_Unchecked_Access               : constant Name_Id := N + 460;
-   Name_Unconstrained_Array            : constant Name_Id := N + 461;
-   Name_Universal_Literal_String       : constant Name_Id := N + 462; -- GNAT
-   Name_Unrestricted_Access            : constant Name_Id := N + 463; -- GNAT
-   Name_VADS_Size                      : constant Name_Id := N + 464; -- GNAT
-   Name_Val                            : constant Name_Id := N + 465;
-   Name_Valid                          : constant Name_Id := N + 466;
-   Name_Value_Size                     : constant Name_Id := N + 467; -- GNAT
-   Name_Version                        : constant Name_Id := N + 468;
-   Name_Wchar_T_Size                   : constant Name_Id := N + 469; -- GNAT
-   Name_Wide_Wide_Width                : constant Name_Id := N + 470; -- Ada 05
-   Name_Wide_Width                     : constant Name_Id := N + 471;
-   Name_Width                          : constant Name_Id := N + 472;
-   Name_Word_Size                      : constant Name_Id := N + 473; -- GNAT
+   First_Attribute_Name                : constant Name_Id := N + 366;
+   Name_Abort_Signal                   : constant Name_Id := N + 366; -- GNAT
+   Name_Access                         : constant Name_Id := N + 367;
+   Name_Address                        : constant Name_Id := N + 368;
+   Name_Address_Size                   : constant Name_Id := N + 369; -- GNAT
+   Name_Aft                            : constant Name_Id := N + 370;
+   Name_Alignment                      : constant Name_Id := N + 371;
+   Name_Asm_Input                      : constant Name_Id := N + 372; -- GNAT
+   Name_Asm_Output                     : constant Name_Id := N + 373; -- GNAT
+   Name_AST_Entry                      : constant Name_Id := N + 374; -- VMS
+   Name_Bit                            : constant Name_Id := N + 375; -- GNAT
+   Name_Bit_Order                      : constant Name_Id := N + 376;
+   Name_Bit_Position                   : constant Name_Id := N + 377; -- GNAT
+   Name_Body_Version                   : constant Name_Id := N + 378;
+   Name_Callable                       : constant Name_Id := N + 379;
+   Name_Caller                         : constant Name_Id := N + 380;
+   Name_Code_Address                   : constant Name_Id := N + 381; -- GNAT
+   Name_Component_Size                 : constant Name_Id := N + 382;
+   Name_Compose                        : constant Name_Id := N + 383;
+   Name_Constrained                    : constant Name_Id := N + 384;
+   Name_Count                          : constant Name_Id := N + 385;
+   Name_Default_Bit_Order              : constant Name_Id := N + 386; -- GNAT
+   Name_Definite                       : constant Name_Id := N + 387;
+   Name_Delta                          : constant Name_Id := N + 388;
+   Name_Denorm                         : constant Name_Id := N + 389;
+   Name_Digits                         : constant Name_Id := N + 390;
+   Name_Elaborated                     : constant Name_Id := N + 391; -- GNAT
+   Name_Emax                           : constant Name_Id := N + 392; -- Ada 83
+   Name_Enabled                        : constant Name_Id := N + 393; -- GNAT
+   Name_Enum_Rep                       : constant Name_Id := N + 394; -- GNAT
+   Name_Epsilon                        : constant Name_Id := N + 395; -- Ada 83
+   Name_Exponent                       : constant Name_Id := N + 396;
+   Name_External_Tag                   : constant Name_Id := N + 397;
+   Name_First                          : constant Name_Id := N + 398;
+   Name_First_Bit                      : constant Name_Id := N + 399;
+   Name_Fixed_Value                    : constant Name_Id := N + 400; -- GNAT
+   Name_Fore                           : constant Name_Id := N + 401;
+   Name_Has_Access_Values              : constant Name_Id := N + 402; -- GNAT
+   Name_Has_Discriminants              : constant Name_Id := N + 403; -- GNAT
+   Name_Identity                       : constant Name_Id := N + 404;
+   Name_Img                            : constant Name_Id := N + 405; -- GNAT
+   Name_Integer_Value                  : constant Name_Id := N + 406; -- GNAT
+   Name_Large                          : constant Name_Id := N + 407; -- Ada 83
+   Name_Last                           : constant Name_Id := N + 408;
+   Name_Last_Bit                       : constant Name_Id := N + 409;
+   Name_Leading_Part                   : constant Name_Id := N + 410;
+   Name_Length                         : constant Name_Id := N + 411;
+   Name_Machine_Emax                   : constant Name_Id := N + 412;
+   Name_Machine_Emin                   : constant Name_Id := N + 413;
+   Name_Machine_Mantissa               : constant Name_Id := N + 414;
+   Name_Machine_Overflows              : constant Name_Id := N + 415;
+   Name_Machine_Radix                  : constant Name_Id := N + 416;
+   Name_Machine_Rounding               : constant Name_Id := N + 417; -- Ada 05
+   Name_Machine_Rounds                 : constant Name_Id := N + 418;
+   Name_Machine_Size                   : constant Name_Id := N + 419; -- GNAT
+   Name_Mantissa                       : constant Name_Id := N + 420; -- Ada 83
+   Name_Max_Size_In_Storage_Elements   : constant Name_Id := N + 421;
+   Name_Maximum_Alignment              : constant Name_Id := N + 422; -- GNAT
+   Name_Mechanism_Code                 : constant Name_Id := N + 423; -- GNAT
+   Name_Mod                            : constant Name_Id := N + 424; -- Ada 05
+   Name_Model_Emin                     : constant Name_Id := N + 425;
+   Name_Model_Epsilon                  : constant Name_Id := N + 426;
+   Name_Model_Mantissa                 : constant Name_Id := N + 427;
+   Name_Model_Small                    : constant Name_Id := N + 428;
+   Name_Modulus                        : constant Name_Id := N + 429;
+   Name_Null_Parameter                 : constant Name_Id := N + 430; -- GNAT
+   Name_Object_Size                    : constant Name_Id := N + 431; -- GNAT
+   Name_Partition_ID                   : constant Name_Id := N + 432;
+   Name_Passed_By_Reference            : constant Name_Id := N + 433; -- GNAT
+   Name_Pool_Address                   : constant Name_Id := N + 434;
+   Name_Pos                            : constant Name_Id := N + 435;
+   Name_Position                       : constant Name_Id := N + 436;
+   Name_Priority                       : constant Name_Id := N + 437; -- Ada 05
+   Name_Range                          : constant Name_Id := N + 438;
+   Name_Range_Length                   : constant Name_Id := N + 439; -- GNAT
+   Name_Round                          : constant Name_Id := N + 440;
+   Name_Safe_Emax                      : constant Name_Id := N + 441; -- Ada 83
+   Name_Safe_First                     : constant Name_Id := N + 442;
+   Name_Safe_Large                     : constant Name_Id := N + 443; -- Ada 83
+   Name_Safe_Last                      : constant Name_Id := N + 444;
+   Name_Safe_Small                     : constant Name_Id := N + 445; -- Ada 83
+   Name_Scale                          : constant Name_Id := N + 446;
+   Name_Scaling                        : constant Name_Id := N + 447;
+   Name_Signed_Zeros                   : constant Name_Id := N + 448;
+   Name_Size                           : constant Name_Id := N + 449;
+   Name_Small                          : constant Name_Id := N + 450;
+   Name_Storage_Size                   : constant Name_Id := N + 451;
+   Name_Storage_Unit                   : constant Name_Id := N + 452; -- GNAT
+   Name_Stream_Size                    : constant Name_Id := N + 453; -- Ada 05
+   Name_Tag                            : constant Name_Id := N + 454;
+   Name_Target_Name                    : constant Name_Id := N + 455; -- GNAT
+   Name_Terminated                     : constant Name_Id := N + 456;
+   Name_To_Address                     : constant Name_Id := N + 457; -- GNAT
+   Name_Type_Class                     : constant Name_Id := N + 458; -- GNAT
+   Name_UET_Address                    : constant Name_Id := N + 459; -- GNAT
+   Name_Unbiased_Rounding              : constant Name_Id := N + 460;
+   Name_Unchecked_Access               : constant Name_Id := N + 461;
+   Name_Unconstrained_Array            : constant Name_Id := N + 462;
+   Name_Universal_Literal_String       : constant Name_Id := N + 463; -- GNAT
+   Name_Unrestricted_Access            : constant Name_Id := N + 464; -- GNAT
+   Name_VADS_Size                      : constant Name_Id := N + 465; -- GNAT
+   Name_Val                            : constant Name_Id := N + 466;
+   Name_Valid                          : constant Name_Id := N + 467;
+   Name_Value_Size                     : constant Name_Id := N + 468; -- GNAT
+   Name_Version                        : constant Name_Id := N + 469;
+   Name_Wchar_T_Size                   : constant Name_Id := N + 470; -- GNAT
+   Name_Wide_Wide_Width                : constant Name_Id := N + 471; -- Ada 05
+   Name_Wide_Width                     : constant Name_Id := N + 472;
+   Name_Width                          : constant Name_Id := N + 473;
+   Name_Word_Size                      : constant Name_Id := N + 474; -- GNAT
 
    --  Attributes that designate attributes returning renamable functions,
    --  i.e. functions that return other than a universal value and that
    --  have non-universal arguments.
 
-   First_Renamable_Function_Attribute  : constant Name_Id := N + 474;
-   Name_Adjacent                       : constant Name_Id := N + 474;
-   Name_Ceiling                        : constant Name_Id := N + 475;
-   Name_Copy_Sign                      : constant Name_Id := N + 476;
-   Name_Floor                          : constant Name_Id := N + 477;
-   Name_Fraction                       : constant Name_Id := N + 478;
-   Name_Image                          : constant Name_Id := N + 479;
-   Name_Input                          : constant Name_Id := N + 480;
-   Name_Machine                        : constant Name_Id := N + 481;
-   Name_Max                            : constant Name_Id := N + 482;
-   Name_Min                            : constant Name_Id := N + 483;
-   Name_Model                          : constant Name_Id := N + 484;
-   Name_Pred                           : constant Name_Id := N + 485;
-   Name_Remainder                      : constant Name_Id := N + 486;
-   Name_Rounding                       : constant Name_Id := N + 487;
-   Name_Succ                           : constant Name_Id := N + 488;
-   Name_Truncation                     : constant Name_Id := N + 489;
-   Name_Value                          : constant Name_Id := N + 490;
-   Name_Wide_Image                     : constant Name_Id := N + 491;
-   Name_Wide_Wide_Image                : constant Name_Id := N + 492;
-   Name_Wide_Value                     : constant Name_Id := N + 493;
-   Name_Wide_Wide_Value                : constant Name_Id := N + 494;
-   Last_Renamable_Function_Attribute   : constant Name_Id := N + 494;
+   First_Renamable_Function_Attribute  : constant Name_Id := N + 475;
+   Name_Adjacent                       : constant Name_Id := N + 475;
+   Name_Ceiling                        : constant Name_Id := N + 476;
+   Name_Copy_Sign                      : constant Name_Id := N + 477;
+   Name_Floor                          : constant Name_Id := N + 478;
+   Name_Fraction                       : constant Name_Id := N + 479;
+   Name_Image                          : constant Name_Id := N + 480;
+   Name_Input                          : constant Name_Id := N + 481;
+   Name_Machine                        : constant Name_Id := N + 482;
+   Name_Max                            : constant Name_Id := N + 483;
+   Name_Min                            : constant Name_Id := N + 484;
+   Name_Model                          : constant Name_Id := N + 485;
+   Name_Pred                           : constant Name_Id := N + 486;
+   Name_Remainder                      : constant Name_Id := N + 487;
+   Name_Rounding                       : constant Name_Id := N + 488;
+   Name_Succ                           : constant Name_Id := N + 489;
+   Name_Truncation                     : constant Name_Id := N + 490;
+   Name_Value                          : constant Name_Id := N + 491;
+   Name_Wide_Image                     : constant Name_Id := N + 492;
+   Name_Wide_Wide_Image                : constant Name_Id := N + 493;
+   Name_Wide_Value                     : constant Name_Id := N + 494;
+   Name_Wide_Wide_Value                : constant Name_Id := N + 495;
+   Last_Renamable_Function_Attribute   : constant Name_Id := N + 495;
 
    --  Attributes that designate procedures
 
-   First_Procedure_Attribute           : constant Name_Id := N + 495;
-   Name_Output                         : constant Name_Id := N + 495;
-   Name_Read                           : constant Name_Id := N + 496;
-   Name_Write                          : constant Name_Id := N + 497;
-   Last_Procedure_Attribute            : constant Name_Id := N + 497;
+   First_Procedure_Attribute           : constant Name_Id := N + 496;
+   Name_Output                         : constant Name_Id := N + 496;
+   Name_Read                           : constant Name_Id := N + 497;
+   Name_Write                          : constant Name_Id := N + 498;
+   Last_Procedure_Attribute            : constant Name_Id := N + 498;
 
    --  Remaining attributes are ones that return entities
 
-   First_Entity_Attribute_Name         : constant Name_Id := N + 498;
-   Name_Elab_Body                      : constant Name_Id := N + 498; -- GNAT
-   Name_Elab_Spec                      : constant Name_Id := N + 499; -- GNAT
-   Name_Storage_Pool                   : constant Name_Id := N + 500;
+   First_Entity_Attribute_Name         : constant Name_Id := N + 499;
+   Name_Elab_Body                      : constant Name_Id := N + 499; -- GNAT
+   Name_Elab_Spec                      : constant Name_Id := N + 500; -- GNAT
+   Name_Storage_Pool                   : constant Name_Id := N + 501;
 
    --  These attributes are the ones that return types
 
-   First_Type_Attribute_Name           : constant Name_Id := N + 501;
-   Name_Base                           : constant Name_Id := N + 501;
-   Name_Class                          : constant Name_Id := N + 502;
-   Name_Stub_Type                      : constant Name_Id := N + 503;
-   Last_Type_Attribute_Name            : constant Name_Id := N + 503;
-   Last_Entity_Attribute_Name          : constant Name_Id := N + 503;
-   Last_Attribute_Name                 : constant Name_Id := N + 503;
+   First_Type_Attribute_Name           : constant Name_Id := N + 502;
+   Name_Base                           : constant Name_Id := N + 502;
+   Name_Class                          : constant Name_Id := N + 503;
+   Name_Stub_Type                      : constant Name_Id := N + 504;
+   Last_Type_Attribute_Name            : constant Name_Id := N + 504;
+   Last_Entity_Attribute_Name          : constant Name_Id := N + 504;
+   Last_Attribute_Name                 : constant Name_Id := N + 504;
 
    --  Names of recognized locking policy identifiers
 
@@ -823,10 +824,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 + 504;
-   Name_Ceiling_Locking                : constant Name_Id := N + 504;
-   Name_Inheritance_Locking            : constant Name_Id := N + 505;
-   Last_Locking_Policy_Name            : constant Name_Id := N + 505;
+   First_Locking_Policy_Name           : constant Name_Id := N + 505;
+   Name_Ceiling_Locking                : constant Name_Id := N + 505;
+   Name_Inheritance_Locking            : constant Name_Id := N + 506;
+   Last_Locking_Policy_Name            : constant Name_Id := N + 506;
 
    --  Names of recognized queuing policy identifiers
 
@@ -834,10 +835,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 + 506;
-   Name_FIFO_Queuing                   : constant Name_Id := N + 506;
-   Name_Priority_Queuing               : constant Name_Id := N + 507;
-   Last_Queuing_Policy_Name            : constant Name_Id := N + 507;
+   First_Queuing_Policy_Name           : constant Name_Id := N + 507;
+   Name_FIFO_Queuing                   : constant Name_Id := N + 507;
+   Name_Priority_Queuing               : constant Name_Id := N + 508;
+   Last_Queuing_Policy_Name            : constant Name_Id := N + 508;
 
    --  Names of recognized task dispatching policy identifiers
 
@@ -845,271 +846,271 @@ package Snames is
    --  name (e.g. F for FIFO_Within_Priorities). If new policy names
    --  are added, the first character must be distinct.
 
-   First_Task_Dispatching_Policy_Name  : constant Name_Id := N + 508;
-   Name_EDF_Across_Priorities          : constant Name_Id := N + 508;
-   Name_FIFO_Within_Priorities         : constant Name_Id := N + 509;
-   Name_Non_Preemptive_Within_Priorities : constant Name_Id := N + 510;
-   Name_Round_Robin_Within_Priorities  : constant Name_Id := N + 511;
-   Last_Task_Dispatching_Policy_Name   : constant Name_Id := N + 511;
+   First_Task_Dispatching_Policy_Name  : constant Name_Id := N + 509;
+   Name_EDF_Across_Priorities          : constant Name_Id := N + 509;
+   Name_FIFO_Within_Priorities         : constant Name_Id := N + 510;
+   Name_Non_Preemptive_Within_Priorities : constant Name_Id := N + 511;
+   Name_Round_Robin_Within_Priorities  : constant Name_Id := N + 512;
+   Last_Task_Dispatching_Policy_Name   : constant Name_Id := N + 512;
 
    --  Names of recognized checks for pragma Suppress
 
-   First_Check_Name                    : constant Name_Id := N + 512;
-   Name_Access_Check                   : constant Name_Id := N + 512;
-   Name_Accessibility_Check            : constant Name_Id := N + 513;
-   Name_Alignment_Check                : constant Name_Id := N + 514; -- GNAT
-   Name_Discriminant_Check             : constant Name_Id := N + 515;
-   Name_Division_Check                 : constant Name_Id := N + 516;
-   Name_Elaboration_Check              : constant Name_Id := N + 517;
-   Name_Index_Check                    : constant Name_Id := N + 518;
-   Name_Length_Check                   : constant Name_Id := N + 519;
-   Name_Overflow_Check                 : constant Name_Id := N + 520;
-   Name_Range_Check                    : constant Name_Id := N + 521;
-   Name_Storage_Check                  : constant Name_Id := N + 522;
-   Name_Tag_Check                      : constant Name_Id := N + 523;
-   Name_Validity_Check                 : constant Name_Id := N + 524; -- GNAT
-   Name_All_Checks                     : constant Name_Id := N + 525;
-   Last_Check_Name                     : constant Name_Id := N + 525;
+   First_Check_Name                    : constant Name_Id := N + 513;
+   Name_Access_Check                   : constant Name_Id := N + 513;
+   Name_Accessibility_Check            : constant Name_Id := N + 514;
+   Name_Alignment_Check                : constant Name_Id := N + 515; -- GNAT
+   Name_Discriminant_Check             : constant Name_Id := N + 516;
+   Name_Division_Check                 : constant Name_Id := N + 517;
+   Name_Elaboration_Check              : constant Name_Id := N + 518;
+   Name_Index_Check                    : constant Name_Id := N + 519;
+   Name_Length_Check                   : constant Name_Id := N + 520;
+   Name_Overflow_Check                 : constant Name_Id := N + 521;
+   Name_Range_Check                    : constant Name_Id := N + 522;
+   Name_Storage_Check                  : constant Name_Id := N + 523;
+   Name_Tag_Check                      : constant Name_Id := N + 524;
+   Name_Validity_Check                 : constant Name_Id := N + 525; -- GNAT
+   Name_All_Checks                     : constant Name_Id := N + 526;
+   Last_Check_Name                     : constant Name_Id := N + 526;
 
    --  Names corresponding to reserved keywords, excluding those already
    --  declared in the attribute list (Access, Delta, Digits, Mod, Range).
 
-   Name_Abort                          : constant Name_Id := N + 526;
-   Name_Abs                            : constant Name_Id := N + 527;
-   Name_Accept                         : constant Name_Id := N + 528;
-   Name_And                            : constant Name_Id := N + 529;
-   Name_All                            : constant Name_Id := N + 530;
-   Name_Array                          : constant Name_Id := N + 531;
-   Name_At                             : constant Name_Id := N + 532;
-   Name_Begin                          : constant Name_Id := N + 533;
-   Name_Body                           : constant Name_Id := N + 534;
-   Name_Case                           : constant Name_Id := N + 535;
-   Name_Constant                       : constant Name_Id := N + 536;
-   Name_Declare                        : constant Name_Id := N + 537;
-   Name_Delay                          : constant Name_Id := N + 538;
-   Name_Do                             : constant Name_Id := N + 539;
-   Name_Else                           : constant Name_Id := N + 540;
-   Name_Elsif                          : constant Name_Id := N + 541;
-   Name_End                            : constant Name_Id := N + 542;
-   Name_Entry                          : constant Name_Id := N + 543;
-   Name_Exception                      : constant Name_Id := N + 544;
-   Name_Exit                           : constant Name_Id := N + 545;
-   Name_For                            : constant Name_Id := N + 546;
-   Name_Function                       : constant Name_Id := N + 547;
-   Name_Generic                        : constant Name_Id := N + 548;
-   Name_Goto                           : constant Name_Id := N + 549;
-   Name_If                             : constant Name_Id := N + 550;
-   Name_In                             : constant Name_Id := N + 551;
-   Name_Is                             : constant Name_Id := N + 552;
-   Name_Limited                        : constant Name_Id := N + 553;
-   Name_Loop                           : constant Name_Id := N + 554;
-   Name_New                            : constant Name_Id := N + 555;
-   Name_Not                            : constant Name_Id := N + 556;
-   Name_Null                           : constant Name_Id := N + 557;
-   Name_Of                             : constant Name_Id := N + 558;
-   Name_Or                             : constant Name_Id := N + 559;
-   Name_Others                         : constant Name_Id := N + 560;
-   Name_Out                            : constant Name_Id := N + 561;
-   Name_Package                        : constant Name_Id := N + 562;
-   Name_Pragma                         : constant Name_Id := N + 563;
-   Name_Private                        : constant Name_Id := N + 564;
-   Name_Procedure                      : constant Name_Id := N + 565;
-   Name_Raise                          : constant Name_Id := N + 566;
-   Name_Record                         : constant Name_Id := N + 567;
-   Name_Rem                            : constant Name_Id := N + 568;
-   Name_Renames                        : constant Name_Id := N + 569;
-   Name_Return                         : constant Name_Id := N + 570;
-   Name_Reverse                        : constant Name_Id := N + 571;
-   Name_Select                         : constant Name_Id := N + 572;
-   Name_Separate                       : constant Name_Id := N + 573;
-   Name_Subtype                        : constant Name_Id := N + 574;
-   Name_Task                           : constant Name_Id := N + 575;
-   Name_Terminate                      : constant Name_Id := N + 576;
-   Name_Then                           : constant Name_Id := N + 577;
-   Name_Type                           : constant Name_Id := N + 578;
-   Name_Use                            : constant Name_Id := N + 579;
-   Name_When                           : constant Name_Id := N + 580;
-   Name_While                          : constant Name_Id := N + 581;
-   Name_With                           : constant Name_Id := N + 582;
-   Name_Xor                            : constant Name_Id := N + 583;
+   Name_Abort                          : constant Name_Id := N + 527;
+   Name_Abs                            : constant Name_Id := N + 528;
+   Name_Accept                         : constant Name_Id := N + 529;
+   Name_And                            : constant Name_Id := N + 530;
+   Name_All                            : constant Name_Id := N + 531;
+   Name_Array                          : constant Name_Id := N + 532;
+   Name_At                             : constant Name_Id := N + 533;
+   Name_Begin                          : constant Name_Id := N + 534;
+   Name_Body                           : constant Name_Id := N + 535;
+   Name_Case                           : constant Name_Id := N + 536;
+   Name_Constant                       : constant Name_Id := N + 537;
+   Name_Declare                        : constant Name_Id := N + 538;
+   Name_Delay                          : constant Name_Id := N + 539;
+   Name_Do                             : constant Name_Id := N + 540;
+   Name_Else                           : constant Name_Id := N + 541;
+   Name_Elsif                          : constant Name_Id := N + 542;
+   Name_End                            : constant Name_Id := N + 543;
+   Name_Entry                          : constant Name_Id := N + 544;
+   Name_Exception                      : constant Name_Id := N + 545;
+   Name_Exit                           : constant Name_Id := N + 546;
+   Name_For                            : constant Name_Id := N + 547;
+   Name_Function                       : constant Name_Id := N + 548;
+   Name_Generic                        : constant Name_Id := N + 549;
+   Name_Goto                           : constant Name_Id := N + 550;
+   Name_If                             : constant Name_Id := N + 551;
+   Name_In                             : constant Name_Id := N + 552;
+   Name_Is                             : constant Name_Id := N + 553;
+   Name_Limited                        : constant Name_Id := N + 554;
+   Name_Loop                           : constant Name_Id := N + 555;
+   Name_New                            : constant Name_Id := N + 556;
+   Name_Not                            : constant Name_Id := N + 557;
+   Name_Null                           : constant Name_Id := N + 558;
+   Name_Of                             : constant Name_Id := N + 559;
+   Name_Or                             : constant Name_Id := N + 560;
+   Name_Others                         : constant Name_Id := N + 561;
+   Name_Out                            : constant Name_Id := N + 562;
+   Name_Package                        : constant Name_Id := N + 563;
+   Name_Pragma                         : constant Name_Id := N + 564;
+   Name_Private                        : constant Name_Id := N + 565;
+   Name_Procedure                      : constant Name_Id := N + 566;
+   Name_Raise                          : constant Name_Id := N + 567;
+   Name_Record                         : constant Name_Id := N + 568;
+   Name_Rem                            : constant Name_Id := N + 569;
+   Name_Renames                        : constant Name_Id := N + 570;
+   Name_Return                         : constant Name_Id := N + 571;
+   Name_Reverse                        : constant Name_Id := N + 572;
+   Name_Select                         : constant Name_Id := N + 573;
+   Name_Separate                       : constant Name_Id := N + 574;
+   Name_Subtype                        : constant Name_Id := N + 575;
+   Name_Task                           : constant Name_Id := N + 576;
+   Name_Terminate                      : constant Name_Id := N + 577;
+   Name_Then                           : constant Name_Id := N + 578;
+   Name_Type                           : constant Name_Id := N + 579;
+   Name_Use                            : constant Name_Id := N + 580;
+   Name_When                           : constant Name_Id := N + 581;
+   Name_While                          : constant Name_Id := N + 582;
+   Name_With                           : constant Name_Id := N + 583;
+   Name_Xor                            : constant Name_Id := N + 584;
 
    --  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 + 584;
-   Name_Divide                          : constant Name_Id := N + 584;
-   Name_Enclosing_Entity                : constant Name_Id := N + 585;
-   Name_Exception_Information           : constant Name_Id := N + 586;
-   Name_Exception_Message               : constant Name_Id := N + 587;
-   Name_Exception_Name                  : constant Name_Id := N + 588;
-   Name_File                            : constant Name_Id := N + 589;
-   Name_Generic_Dispatching_Constructor : constant Name_Id := N + 590;
-   Name_Import_Address                  : constant Name_Id := N + 591;
-   Name_Import_Largest_Value            : constant Name_Id := N + 592;
-   Name_Import_Value                    : constant Name_Id := N + 593;
-   Name_Is_Negative                     : constant Name_Id := N + 594;
-   Name_Line                            : constant Name_Id := N + 595;
-   Name_Rotate_Left                     : constant Name_Id := N + 596;
-   Name_Rotate_Right                    : constant Name_Id := N + 597;
-   Name_Shift_Left                      : constant Name_Id := N + 598;
-   Name_Shift_Right                     : constant Name_Id := N + 599;
-   Name_Shift_Right_Arithmetic          : constant Name_Id := N + 600;
-   Name_Source_Location                 : constant Name_Id := N + 601;
-   Name_Unchecked_Conversion            : constant Name_Id := N + 602;
-   Name_Unchecked_Deallocation          : constant Name_Id := N + 603;
-   Name_To_Pointer                      : constant Name_Id := N + 604;
-   Last_Intrinsic_Name                  : constant Name_Id := N + 604;
+   First_Intrinsic_Name                 : constant Name_Id := N + 585;
+   Name_Divide                          : constant Name_Id := N + 585;
+   Name_Enclosing_Entity                : constant Name_Id := N + 586;
+   Name_Exception_Information           : constant Name_Id := N + 587;
+   Name_Exception_Message               : constant Name_Id := N + 588;
+   Name_Exception_Name                  : constant Name_Id := N + 589;
+   Name_File                            : constant Name_Id := N + 590;
+   Name_Generic_Dispatching_Constructor : constant Name_Id := N + 591;
+   Name_Import_Address                  : constant Name_Id := N + 592;
+   Name_Import_Largest_Value            : constant Name_Id := N + 593;
+   Name_Import_Value                    : constant Name_Id := N + 594;
+   Name_Is_Negative                     : constant Name_Id := N + 595;
+   Name_Line                            : constant Name_Id := N + 596;
+   Name_Rotate_Left                     : constant Name_Id := N + 597;
+   Name_Rotate_Right                    : constant Name_Id := N + 598;
+   Name_Shift_Left                      : constant Name_Id := N + 599;
+   Name_Shift_Right                     : constant Name_Id := N + 600;
+   Name_Shift_Right_Arithmetic          : constant Name_Id := N + 601;
+   Name_Source_Location                 : constant Name_Id := N + 602;
+   Name_Unchecked_Conversion            : constant Name_Id := N + 603;
+   Name_Unchecked_Deallocation          : constant Name_Id := N + 604;
+   Name_To_Pointer                      : constant Name_Id := N + 605;
+   Last_Intrinsic_Name                  : constant Name_Id := N + 605;
 
    --  Names used in processing intrinsic calls
 
-   Name_Free                           : constant Name_Id := N + 605;
+   Name_Free                           : constant Name_Id := N + 606;
 
    --  Reserved words used only in Ada 95
 
-   First_95_Reserved_Word              : constant Name_Id := N + 606;
-   Name_Abstract                       : constant Name_Id := N + 606;
-   Name_Aliased                        : constant Name_Id := N + 607;
-   Name_Protected                      : constant Name_Id := N + 608;
-   Name_Until                          : constant Name_Id := N + 609;
-   Name_Requeue                        : constant Name_Id := N + 610;
-   Name_Tagged                         : constant Name_Id := N + 611;
-   Last_95_Reserved_Word               : constant Name_Id := N + 611;
+   First_95_Reserved_Word              : constant Name_Id := N + 607;
+   Name_Abstract                       : constant Name_Id := N + 607;
+   Name_Aliased                        : constant Name_Id := N + 608;
+   Name_Protected                      : constant Name_Id := N + 609;
+   Name_Until                          : constant Name_Id := N + 610;
+   Name_Requeue                        : constant Name_Id := N + 611;
+   Name_Tagged                         : constant Name_Id := N + 612;
+   Last_95_Reserved_Word               : constant Name_Id := N + 612;
 
    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 + 612;
+   Name_Raise_Exception                : constant Name_Id := N + 613;
 
    --  Additional reserved words and identifiers used in GNAT Project Files
    --  Note that Name_External is already previously declared
 
-   Name_Ada_Roots                      : constant Name_Id := N + 613;
-   Name_Archive_Builder                : constant Name_Id := N + 614;
-   Name_Archive_Indexer                : constant Name_Id := N + 615;
-   Name_Archive_Suffix                 : constant Name_Id := N + 616;
-   Name_Binder                         : constant Name_Id := N + 617;
-   Name_Binder_Prefix                  : constant Name_Id := N + 618;
-   Name_Body_Suffix                    : constant Name_Id := N + 619;
-   Name_Builder                        : constant Name_Id := N + 620;
-   Name_Builder_Switches               : constant Name_Id := N + 621;
-   Name_Compiler                       : constant Name_Id := N + 622;
-   Name_Compiler_Kind                  : constant Name_Id := N + 623;
-   Name_Config_Body_File_Name          : constant Name_Id := N + 624;
-   Name_Config_Body_File_Name_Pattern  : constant Name_Id := N + 625;
-   Name_Config_File_Switches           : constant Name_Id := N + 626;
-   Name_Config_File_Unique             : constant Name_Id := N + 627;
-   Name_Config_Spec_File_Name          : constant Name_Id := N + 628;
-   Name_Config_Spec_File_Name_Pattern  : constant Name_Id := N + 629;
-   Name_Cross_Reference                : constant Name_Id := N + 630;
-   Name_Default_Language               : constant Name_Id := N + 631;
-   Name_Default_Switches               : constant Name_Id := N + 632;
-   Name_Dependency_Driver              : constant Name_Id := N + 633;
-   Name_Dependency_File_Kind           : constant Name_Id := N + 634;
-   Name_Dependency_Switches            : constant Name_Id := N + 635;
-   Name_Driver                         : constant Name_Id := N + 636;
-   Name_Excluded_Source_Dirs           : constant Name_Id := N + 637;
-   Name_Excluded_Source_Files          : constant Name_Id := N + 638;
-   Name_Exec_Dir                       : constant Name_Id := N + 639;
-   Name_Executable                     : constant Name_Id := N + 640;
-   Name_Executable_Suffix              : constant Name_Id := N + 641;
-   Name_Extends                        : constant Name_Id := N + 642;
-   Name_Externally_Built               : constant Name_Id := N + 643;
-   Name_Finder                         : constant Name_Id := N + 644;
-   Name_Global_Configuration_Pragmas   : constant Name_Id := N + 645;
-   Name_Global_Config_File             : constant Name_Id := N + 646;
-   Name_Gnatls                         : constant Name_Id := N + 647;
-   Name_Gnatstub                       : constant Name_Id := N + 648;
-   Name_Implementation                 : constant Name_Id := N + 649;
-   Name_Implementation_Exceptions      : constant Name_Id := N + 650;
-   Name_Implementation_Suffix          : constant Name_Id := N + 651;
-   Name_Include_Option                 : constant Name_Id := N + 652;
-   Name_Include_Path                   : constant Name_Id := N + 653;
-   Name_Include_Path_File              : constant Name_Id := N + 654;
-   Name_Language_Kind                  : constant Name_Id := N + 655;
-   Name_Language_Processing            : constant Name_Id := N + 656;
-   Name_Languages                      : constant Name_Id := N + 657;
-   Name_Library_Ali_Dir                : constant Name_Id := N + 658;
-   Name_Library_Auto_Init              : constant Name_Id := N + 659;
-   Name_Library_Auto_Init_Supported    : constant Name_Id := N + 660;
-   Name_Library_Builder                : constant Name_Id := N + 661;
-   Name_Library_Dir                    : constant Name_Id := N + 662;
-   Name_Library_GCC                    : constant Name_Id := N + 663;
-   Name_Library_Interface              : constant Name_Id := N + 664;
-   Name_Library_Kind                   : constant Name_Id := N + 665;
-   Name_Library_Name                   : constant Name_Id := N + 666;
-   Name_Library_Major_Minor_Id_Supported : constant Name_Id := N + 667;
-   Name_Library_Options                : constant Name_Id := N + 668;
-   Name_Library_Partial_Linker         : constant Name_Id := N + 669;
-   Name_Library_Reference_Symbol_File  : constant Name_Id := N + 670;
-   Name_Library_Src_Dir                : constant Name_Id := N + 671;
-   Name_Library_Support                : constant Name_Id := N + 672;
-   Name_Library_Symbol_File            : constant Name_Id := N + 673;
-   Name_Library_Symbol_Policy          : constant Name_Id := N + 674;
-   Name_Library_Version                : constant Name_Id := N + 675;
-   Name_Library_Version_Switches       : constant Name_Id := N + 676;
-   Name_Linker                         : constant Name_Id := N + 677;
-   Name_Linker_Executable_Option       : constant Name_Id := N + 678;
-   Name_Linker_Lib_Dir_Option          : constant Name_Id := N + 679;
-   Name_Linker_Lib_Name_Option         : constant Name_Id := N + 680;
-   Name_Local_Config_File              : constant Name_Id := N + 681;
-   Name_Local_Configuration_Pragmas    : constant Name_Id := N + 682;
-   Name_Locally_Removed_Files          : constant Name_Id := N + 683;
-   Name_Mapping_File_Switches          : constant Name_Id := N + 684;
-   Name_Mapping_Spec_Suffix            : constant Name_Id := N + 685;
-   Name_Mapping_Body_Suffix            : constant Name_Id := N + 686;
-   Name_Metrics                        : constant Name_Id := N + 687;
-   Name_Naming                         : constant Name_Id := N + 688;
-   Name_Objects_Path                   : constant Name_Id := N + 689;
-   Name_Objects_Path_File              : constant Name_Id := N + 690;
-   Name_Object_Dir                     : constant Name_Id := N + 691;
-   Name_Pic_Option                     : constant Name_Id := N + 692;
-   Name_Pretty_Printer                 : constant Name_Id := N + 693;
-   Name_Prefix                         : constant Name_Id := N + 694;
-   Name_Project                        : constant Name_Id := N + 695;
-   Name_Roots                          : constant Name_Id := N + 696;
-   Name_Required_Switches              : constant Name_Id := N + 697;
-   Name_Run_Path_Option                : constant Name_Id := N + 698;
-   Name_Runtime_Project                : constant Name_Id := N + 699;
-   Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 700;
-   Name_Shared_Library_Prefix          : constant Name_Id := N + 701;
-   Name_Shared_Library_Suffix          : constant Name_Id := N + 702;
-   Name_Separate_Suffix                : constant Name_Id := N + 703;
-   Name_Source_Dirs                    : constant Name_Id := N + 704;
-   Name_Source_Files                   : constant Name_Id := N + 705;
-   Name_Source_List_File               : constant Name_Id := N + 706;
-   Name_Spec                           : constant Name_Id := N + 707;
-   Name_Spec_Suffix                    : constant Name_Id := N + 708;
-   Name_Specification                  : constant Name_Id := N + 709;
-   Name_Specification_Exceptions       : constant Name_Id := N + 710;
-   Name_Specification_Suffix           : constant Name_Id := N + 711;
-   Name_Stack                          : constant Name_Id := N + 712;
-   Name_Switches                       : constant Name_Id := N + 713;
-   Name_Symbolic_Link_Supported        : constant Name_Id := N + 714;
-   Name_Toolchain_Description          : constant Name_Id := N + 715;
-   Name_Toolchain_Version              : constant Name_Id := N + 716;
+   Name_Ada_Roots                      : constant Name_Id := N + 614;
+   Name_Archive_Builder                : constant Name_Id := N + 615;
+   Name_Archive_Indexer                : constant Name_Id := N + 616;
+   Name_Archive_Suffix                 : constant Name_Id := N + 617;
+   Name_Binder                         : constant Name_Id := N + 618;
+   Name_Binder_Prefix                  : constant Name_Id := N + 619;
+   Name_Body_Suffix                    : constant Name_Id := N + 620;
+   Name_Builder                        : constant Name_Id := N + 621;
+   Name_Builder_Switches               : constant Name_Id := N + 622;
+   Name_Compiler                       : constant Name_Id := N + 623;
+   Name_Compiler_Kind                  : constant Name_Id := N + 624;
+   Name_Config_Body_File_Name          : constant Name_Id := N + 625;
+   Name_Config_Body_File_Name_Pattern  : constant Name_Id := N + 626;
+   Name_Config_File_Switches           : constant Name_Id := N + 627;
+   Name_Config_File_Unique             : constant Name_Id := N + 628;
+   Name_Config_Spec_File_Name          : constant Name_Id := N + 629;
+   Name_Config_Spec_File_Name_Pattern  : constant Name_Id := N + 630;
+   Name_Cross_Reference                : constant Name_Id := N + 631;
+   Name_Default_Language               : constant Name_Id := N + 632;
+   Name_Default_Switches               : constant Name_Id := N + 633;
+   Name_Dependency_Driver              : constant Name_Id := N + 634;
+   Name_Dependency_File_Kind           : constant Name_Id := N + 635;
+   Name_Dependency_Switches            : constant Name_Id := N + 636;
+   Name_Driver                         : constant Name_Id := N + 637;
+   Name_Excluded_Source_Dirs           : constant Name_Id := N + 638;
+   Name_Excluded_Source_Files          : constant Name_Id := N + 639;
+   Name_Exec_Dir                       : constant Name_Id := N + 640;
+   Name_Executable                     : constant Name_Id := N + 641;
+   Name_Executable_Suffix              : constant Name_Id := N + 642;
+   Name_Extends                        : constant Name_Id := N + 643;
+   Name_Externally_Built               : constant Name_Id := N + 644;
+   Name_Finder                         : constant Name_Id := N + 645;
+   Name_Global_Configuration_Pragmas   : constant Name_Id := N + 646;
+   Name_Global_Config_File             : constant Name_Id := N + 647;
+   Name_Gnatls                         : constant Name_Id := N + 648;
+   Name_Gnatstub                       : constant Name_Id := N + 649;
+   Name_Implementation                 : constant Name_Id := N + 650;
+   Name_Implementation_Exceptions      : constant Name_Id := N + 651;
+   Name_Implementation_Suffix          : constant Name_Id := N + 652;
+   Name_Include_Option                 : constant Name_Id := N + 653;
+   Name_Include_Path                   : constant Name_Id := N + 654;
+   Name_Include_Path_File              : constant Name_Id := N + 655;
+   Name_Language_Kind                  : constant Name_Id := N + 656;
+   Name_Language_Processing            : constant Name_Id := N + 657;
+   Name_Languages                      : constant Name_Id := N + 658;
+   Name_Library_Ali_Dir                : constant Name_Id := N + 659;
+   Name_Library_Auto_Init              : constant Name_Id := N + 660;
+   Name_Library_Auto_Init_Supported    : constant Name_Id := N + 661;
+   Name_Library_Builder                : constant Name_Id := N + 662;
+   Name_Library_Dir                    : constant Name_Id := N + 663;
+   Name_Library_GCC                    : constant Name_Id := N + 664;
+   Name_Library_Interface              : constant Name_Id := N + 665;
+   Name_Library_Kind                   : constant Name_Id := N + 666;
+   Name_Library_Name                   : constant Name_Id := N + 667;
+   Name_Library_Major_Minor_Id_Supported : constant Name_Id := N + 668;
+   Name_Library_Options                : constant Name_Id := N + 669;
+   Name_Library_Partial_Linker         : constant Name_Id := N + 670;
+   Name_Library_Reference_Symbol_File  : constant Name_Id := N + 671;
+   Name_Library_Src_Dir                : constant Name_Id := N + 672;
+   Name_Library_Support                : constant Name_Id := N + 673;
+   Name_Library_Symbol_File            : constant Name_Id := N + 674;
+   Name_Library_Symbol_Policy          : constant Name_Id := N + 675;
+   Name_Library_Version                : constant Name_Id := N + 676;
+   Name_Library_Version_Switches       : constant Name_Id := N + 677;
+   Name_Linker                         : constant Name_Id := N + 678;
+   Name_Linker_Executable_Option       : constant Name_Id := N + 679;
+   Name_Linker_Lib_Dir_Option          : constant Name_Id := N + 680;
+   Name_Linker_Lib_Name_Option         : constant Name_Id := N + 681;
+   Name_Local_Config_File              : constant Name_Id := N + 682;
+   Name_Local_Configuration_Pragmas    : constant Name_Id := N + 683;
+   Name_Locally_Removed_Files          : constant Name_Id := N + 684;
+   Name_Mapping_File_Switches          : constant Name_Id := N + 685;
+   Name_Mapping_Spec_Suffix            : constant Name_Id := N + 686;
+   Name_Mapping_Body_Suffix            : constant Name_Id := N + 687;
+   Name_Metrics                        : constant Name_Id := N + 688;
+   Name_Naming                         : constant Name_Id := N + 689;
+   Name_Objects_Path                   : constant Name_Id := N + 690;
+   Name_Objects_Path_File              : constant Name_Id := N + 691;
+   Name_Object_Dir                     : constant Name_Id := N + 692;
+   Name_Pic_Option                     : constant Name_Id := N + 693;
+   Name_Pretty_Printer                 : constant Name_Id := N + 694;
+   Name_Prefix                         : constant Name_Id := N + 695;
+   Name_Project                        : constant Name_Id := N + 696;
+   Name_Roots                          : constant Name_Id := N + 697;
+   Name_Required_Switches              : constant Name_Id := N + 698;
+   Name_Run_Path_Option                : constant Name_Id := N + 699;
+   Name_Runtime_Project                : constant Name_Id := N + 700;
+   Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 701;
+   Name_Shared_Library_Prefix          : constant Name_Id := N + 702;
+   Name_Shared_Library_Suffix          : constant Name_Id := N + 703;
+   Name_Separate_Suffix                : constant Name_Id := N + 704;
+   Name_Source_Dirs                    : constant Name_Id := N + 705;
+   Name_Source_Files                   : constant Name_Id := N + 706;
+   Name_Source_List_File               : constant Name_Id := N + 707;
+   Name_Spec                           : constant Name_Id := N + 708;
+   Name_Spec_Suffix                    : constant Name_Id := N + 709;
+   Name_Specification                  : constant Name_Id := N + 710;
+   Name_Specification_Exceptions       : constant Name_Id := N + 711;
+   Name_Specification_Suffix           : constant Name_Id := N + 712;
+   Name_Stack                          : constant Name_Id := N + 713;
+   Name_Switches                       : constant Name_Id := N + 714;
+   Name_Symbolic_Link_Supported        : constant Name_Id := N + 715;
+   Name_Toolchain_Description          : constant Name_Id := N + 716;
+   Name_Toolchain_Version              : constant Name_Id := N + 717;
 
    --  Other miscellaneous names used in front end
 
-   Name_Unaligned_Valid                : constant Name_Id := N + 717;
+   Name_Unaligned_Valid                : constant Name_Id := N + 718;
 
    --  Ada 2005 reserved words
 
-   First_2005_Reserved_Word            : constant Name_Id := N + 718;
-   Name_Interface                      : constant Name_Id := N + 718;
-   Name_Overriding                     : constant Name_Id := N + 719;
-   Name_Synchronized                   : constant Name_Id := N + 720;
-   Last_2005_Reserved_Word             : constant Name_Id := N + 720;
+   First_2005_Reserved_Word            : constant Name_Id := N + 719;
+   Name_Interface                      : constant Name_Id := N + 719;
+   Name_Overriding                     : constant Name_Id := N + 720;
+   Name_Synchronized                   : constant Name_Id := N + 721;
+   Last_2005_Reserved_Word             : constant Name_Id := N + 721;
 
    subtype Ada_2005_Reserved_Words is
      Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word;
 
    --  Mark last defined name for consistency check in Snames body
 
-   Last_Predefined_Name                : constant Name_Id := N + 720;
+   Last_Predefined_Name                : constant Name_Id := N + 721;
 
    ---------------------------------------
    -- Subtypes Defining Name Categories --
@@ -1339,6 +1340,7 @@ package Snames is
       Pragma_Check_Name,
       Pragma_Compile_Time_Error,
       Pragma_Compile_Time_Warning,
+      Pragma_Compiler_Unit,
       Pragma_Component_Alignment,
       Pragma_Convention_Identifier,
       Pragma_Debug_Policy,
index 9f145c5153fe1a8aa7d6e13f6bbf07cc63a664e3..f94e0a2ef64c02f47395b00c850268994c5654bb 100644 (file)
@@ -224,155 +224,156 @@ extern unsigned char Get_Pragma_Id (int);
 #define  Pragma_Check_Name                    6
 #define  Pragma_Compile_Time_Error            7
 #define  Pragma_Compile_Time_Warning          8
-#define  Pragma_Component_Alignment           9
-#define  Pragma_Convention_Identifier         10
-#define  Pragma_Debug_Policy                  11
-#define  Pragma_Detect_Blocking               12
-#define  Pragma_Discard_Names                 13
-#define  Pragma_Elaboration_Checks            14
-#define  Pragma_Eliminate                     15
-#define  Pragma_Extend_System                 16
-#define  Pragma_Extensions_Allowed            17
-#define  Pragma_External_Name_Casing          18
-#define  Pragma_Float_Representation          19
-#define  Pragma_Implicit_Packing              20
-#define  Pragma_Initialize_Scalars            21
-#define  Pragma_Interrupt_State               22
-#define  Pragma_License                       23
-#define  Pragma_Locking_Policy                24
-#define  Pragma_Long_Float                    25
-#define  Pragma_No_Run_Time                   26
-#define  Pragma_No_Strict_Aliasing            27
-#define  Pragma_Normalize_Scalars             28
-#define  Pragma_Polling                       29
-#define  Pragma_Persistent_BSS                30
-#define  Pragma_Priority_Specific_Dispatching 31
-#define  Pragma_Profile                       32
-#define  Pragma_Profile_Warnings              33
-#define  Pragma_Propagate_Exceptions          34
-#define  Pragma_Queuing_Policy                35
-#define  Pragma_Ravenscar                     36
-#define  Pragma_Restricted_Run_Time           37
-#define  Pragma_Restrictions                  38
-#define  Pragma_Restriction_Warnings          39
-#define  Pragma_Reviewable                    40
-#define  Pragma_Source_File_Name              41
-#define  Pragma_Source_File_Name_Project      42
-#define  Pragma_Style_Checks                  43
-#define  Pragma_Suppress                      44
-#define  Pragma_Suppress_Exception_Locations  45
-#define  Pragma_Task_Dispatching_Policy       46
-#define  Pragma_Universal_Data                47
-#define  Pragma_Unsuppress                    48
-#define  Pragma_Use_VADS_Size                 49
-#define  Pragma_Validity_Checks               50
-#define  Pragma_Warnings                      51
-#define  Pragma_Wide_Character_Encoding       52
-#define  Pragma_Abort_Defer                   53
-#define  Pragma_All_Calls_Remote              54
-#define  Pragma_Annotate                      55
-#define  Pragma_Assert                        56
-#define  Pragma_Asynchronous                  57
-#define  Pragma_Atomic                        58
-#define  Pragma_Atomic_Components             59
-#define  Pragma_Attach_Handler                60
-#define  Pragma_CIL_Constructor               61
-#define  Pragma_Comment                       62
-#define  Pragma_Common_Object                 63
-#define  Pragma_Complete_Representation       64
-#define  Pragma_Complex_Representation        65
-#define  Pragma_Controlled                    66
-#define  Pragma_Convention                    67
-#define  Pragma_CPP_Class                     68
-#define  Pragma_CPP_Constructor               69
-#define  Pragma_CPP_Virtual                   70
-#define  Pragma_CPP_Vtable                    71
-#define  Pragma_Debug                         72
-#define  Pragma_Elaborate                     73
-#define  Pragma_Elaborate_All                 74
-#define  Pragma_Elaborate_Body                75
-#define  Pragma_Export                        76
-#define  Pragma_Export_Exception              77
-#define  Pragma_Export_Function               78
-#define  Pragma_Export_Object                 79
-#define  Pragma_Export_Procedure              80
-#define  Pragma_Export_Value                  81
-#define  Pragma_Export_Valued_Procedure       82
-#define  Pragma_External                      83
-#define  Pragma_Finalize_Storage_Only         84
-#define  Pragma_Ident                         85
-#define  Pragma_Import                        86
-#define  Pragma_Import_Exception              87
-#define  Pragma_Import_Function               88
-#define  Pragma_Import_Object                 89
-#define  Pragma_Import_Procedure              90
-#define  Pragma_Import_Valued_Procedure       91
-#define  Pragma_Inline                        92
-#define  Pragma_Inline_Always                 93
-#define  Pragma_Inline_Generic                94
-#define  Pragma_Inspection_Point              95
-#define  Pragma_Interface_Name                96
-#define  Pragma_Interrupt_Handler             97
-#define  Pragma_Interrupt_Priority            98
-#define  Pragma_Java_Constructor              99
-#define  Pragma_Java_Interface                100
-#define  Pragma_Keep_Names                    101
-#define  Pragma_Link_With                     102
-#define  Pragma_Linker_Alias                  103
-#define  Pragma_Linker_Constructor            104
-#define  Pragma_Linker_Destructor             105
-#define  Pragma_Linker_Options                106
-#define  Pragma_Linker_Section                107
-#define  Pragma_List                          108
-#define  Pragma_Machine_Attribute             109
-#define  Pragma_Main                          110
-#define  Pragma_Main_Storage                  111
-#define  Pragma_Memory_Size                   112
-#define  Pragma_No_Body                       113
-#define  Pragma_No_Return                     114
-#define  Pragma_Obsolescent                   115
-#define  Pragma_Optimize                      116
-#define  Pragma_Pack                          117
-#define  Pragma_Page                          118
-#define  Pragma_Passive                       119
-#define  Pragma_Preelaborable_Initialization  120
-#define  Pragma_Preelaborate                  121
-#define  Pragma_Preelaborate_05               122
-#define  Pragma_Psect_Object                  123
-#define  Pragma_Pure                          124
-#define  Pragma_Pure_05                       125
-#define  Pragma_Pure_Function                 126
-#define  Pragma_Remote_Call_Interface         127
-#define  Pragma_Remote_Types                  128
-#define  Pragma_Share_Generic                 129
-#define  Pragma_Shared                        130
-#define  Pragma_Shared_Passive                131
-#define  Pragma_Source_Reference              132
-#define  Pragma_Static_Elaboration_Desired    133
-#define  Pragma_Stream_Convert                134
-#define  Pragma_Subtitle                      135
-#define  Pragma_Suppress_All                  136
-#define  Pragma_Suppress_Debug_Info           137
-#define  Pragma_Suppress_Initialization       138
-#define  Pragma_System_Name                   139
-#define  Pragma_Task_Info                     140
-#define  Pragma_Task_Name                     141
-#define  Pragma_Task_Storage                  142
-#define  Pragma_Time_Slice                    143
-#define  Pragma_Title                         144
-#define  Pragma_Unchecked_Union               145
-#define  Pragma_Unimplemented_Unit            146
-#define  Pragma_Universal_Aliasing            147
-#define  Pragma_Unreferenced                  148
-#define  Pragma_Unreferenced_Objects          149
-#define  Pragma_Unreserve_All_Interrupts      150
-#define  Pragma_Volatile                      151
-#define  Pragma_Volatile_Components           152
-#define  Pragma_Weak_External                 153
-#define  Pragma_AST_Entry                     154
-#define  Pragma_Interface                     155
-#define  Pragma_Priority                      156
-#define  Pragma_Storage_Size                  157
-#define  Pragma_Storage_Unit                  158
+#define  Pragma_Compiler_Unit                 9
+#define  Pragma_Component_Alignment           10
+#define  Pragma_Convention_Identifier         11
+#define  Pragma_Debug_Policy                  12
+#define  Pragma_Detect_Blocking               13
+#define  Pragma_Discard_Names                 14
+#define  Pragma_Elaboration_Checks            15
+#define  Pragma_Eliminate                     16
+#define  Pragma_Extend_System                 17
+#define  Pragma_Extensions_Allowed            18
+#define  Pragma_External_Name_Casing          19
+#define  Pragma_Float_Representation          20
+#define  Pragma_Implicit_Packing              21
+#define  Pragma_Initialize_Scalars            22
+#define  Pragma_Interrupt_State               23
+#define  Pragma_License                       24
+#define  Pragma_Locking_Policy                25
+#define  Pragma_Long_Float                    26
+#define  Pragma_No_Run_Time                   27
+#define  Pragma_No_Strict_Aliasing            28
+#define  Pragma_Normalize_Scalars             29
+#define  Pragma_Polling                       30
+#define  Pragma_Persistent_BSS                31
+#define  Pragma_Priority_Specific_Dispatching 32
+#define  Pragma_Profile                       33
+#define  Pragma_Profile_Warnings              34
+#define  Pragma_Propagate_Exceptions          35
+#define  Pragma_Queuing_Policy                36
+#define  Pragma_Ravenscar                     37
+#define  Pragma_Restricted_Run_Time           38
+#define  Pragma_Restrictions                  39
+#define  Pragma_Restriction_Warnings          40
+#define  Pragma_Reviewable                    41
+#define  Pragma_Source_File_Name              42
+#define  Pragma_Source_File_Name_Project      43
+#define  Pragma_Style_Checks                  44
+#define  Pragma_Suppress                      45
+#define  Pragma_Suppress_Exception_Locations  46
+#define  Pragma_Task_Dispatching_Policy       47
+#define  Pragma_Universal_Data                48
+#define  Pragma_Unsuppress                    49
+#define  Pragma_Use_VADS_Size                 50
+#define  Pragma_Validity_Checks               51
+#define  Pragma_Warnings                      52
+#define  Pragma_Wide_Character_Encoding       53
+#define  Pragma_Abort_Defer                   54
+#define  Pragma_All_Calls_Remote              55
+#define  Pragma_Annotate                      56
+#define  Pragma_Assert                        57
+#define  Pragma_Asynchronous                  58
+#define  Pragma_Atomic                        59
+#define  Pragma_Atomic_Components             60
+#define  Pragma_Attach_Handler                61
+#define  Pragma_CIL_Constructor               62
+#define  Pragma_Comment                       63
+#define  Pragma_Common_Object                 64
+#define  Pragma_Complete_Representation       65
+#define  Pragma_Complex_Representation        66
+#define  Pragma_Controlled                    67
+#define  Pragma_Convention                    68
+#define  Pragma_CPP_Class                     69
+#define  Pragma_CPP_Constructor               70
+#define  Pragma_CPP_Virtual                   71
+#define  Pragma_CPP_Vtable                    72
+#define  Pragma_Debug                         73
+#define  Pragma_Elaborate                     74
+#define  Pragma_Elaborate_All                 75
+#define  Pragma_Elaborate_Body                76
+#define  Pragma_Export                        77
+#define  Pragma_Export_Exception              78
+#define  Pragma_Export_Function               79
+#define  Pragma_Export_Object                 80
+#define  Pragma_Export_Procedure              81
+#define  Pragma_Export_Value                  82
+#define  Pragma_Export_Valued_Procedure       83
+#define  Pragma_External                      84
+#define  Pragma_Finalize_Storage_Only         85
+#define  Pragma_Ident                         86
+#define  Pragma_Import                        87
+#define  Pragma_Import_Exception              88
+#define  Pragma_Import_Function               89
+#define  Pragma_Import_Object                 90
+#define  Pragma_Import_Procedure              91
+#define  Pragma_Import_Valued_Procedure       92
+#define  Pragma_Inline                        93
+#define  Pragma_Inline_Always                 94
+#define  Pragma_Inline_Generic                95
+#define  Pragma_Inspection_Point              96
+#define  Pragma_Interface_Name                97
+#define  Pragma_Interrupt_Handler             98
+#define  Pragma_Interrupt_Priority            99
+#define  Pragma_Java_Constructor              100
+#define  Pragma_Java_Interface                101
+#define  Pragma_Keep_Names                    102
+#define  Pragma_Link_With                     103
+#define  Pragma_Linker_Alias                  104
+#define  Pragma_Linker_Constructor            105
+#define  Pragma_Linker_Destructor             106
+#define  Pragma_Linker_Options                107
+#define  Pragma_Linker_Section                108
+#define  Pragma_List                          109
+#define  Pragma_Machine_Attribute             110
+#define  Pragma_Main                          111
+#define  Pragma_Main_Storage                  112
+#define  Pragma_Memory_Size                   113
+#define  Pragma_No_Body                       114
+#define  Pragma_No_Return                     115
+#define  Pragma_Obsolescent                   116
+#define  Pragma_Optimize                      117
+#define  Pragma_Pack                          118
+#define  Pragma_Page                          119
+#define  Pragma_Passive                       120
+#define  Pragma_Preelaborable_Initialization  121
+#define  Pragma_Preelaborate                  122
+#define  Pragma_Preelaborate_05               123
+#define  Pragma_Psect_Object                  124
+#define  Pragma_Pure                          125
+#define  Pragma_Pure_05                       126
+#define  Pragma_Pure_Function                 127
+#define  Pragma_Remote_Call_Interface         128
+#define  Pragma_Remote_Types                  129
+#define  Pragma_Share_Generic                 130
+#define  Pragma_Shared                        131
+#define  Pragma_Shared_Passive                132
+#define  Pragma_Source_Reference              133
+#define  Pragma_Static_Elaboration_Desired    134
+#define  Pragma_Stream_Convert                135
+#define  Pragma_Subtitle                      136
+#define  Pragma_Suppress_All                  137
+#define  Pragma_Suppress_Debug_Info           138
+#define  Pragma_Suppress_Initialization       139
+#define  Pragma_System_Name                   140
+#define  Pragma_Task_Info                     141
+#define  Pragma_Task_Name                     142
+#define  Pragma_Task_Storage                  143
+#define  Pragma_Time_Slice                    144
+#define  Pragma_Title                         145
+#define  Pragma_Unchecked_Union               146
+#define  Pragma_Unimplemented_Unit            147
+#define  Pragma_Universal_Aliasing            148
+#define  Pragma_Unreferenced                  149
+#define  Pragma_Unreferenced_Objects          150
+#define  Pragma_Unreserve_All_Interrupts      151
+#define  Pragma_Volatile                      152
+#define  Pragma_Volatile_Components           153
+#define  Pragma_Weak_External                 154
+#define  Pragma_AST_Entry                     155
+#define  Pragma_Interface                     156
+#define  Pragma_Priority                      157
+#define  Pragma_Storage_Size                  158
+#define  Pragma_Storage_Unit                  159
 
 /* End of snames.h (C version of Snames package spec) */