diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2004-02-04 12:06:19 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2004-02-04 12:06:19 +0100 |
commit | 06effe875c0dad1b8f27e868058d8401e74a4363 (patch) | |
tree | eb723f684eca66cfc93f09df6fa537a3371b2f14 /gcc/ada | |
parent | c23796791cc43119331defae7a554fc8358ca6e7 (diff) | |
download | gcc-06effe875c0dad1b8f27e868058d8401e74a4363.zip gcc-06effe875c0dad1b8f27e868058d8401e74a4363.tar.gz gcc-06effe875c0dad1b8f27e868058d8401e74a4363.tar.bz2 |
[multiple changes]
2004-02-04 Robert Dewar <dewar@gnat.com>
* 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
ali.ads, gprcmd.adb: Minor reformatting
* bindgen.adb: Output restrictions string for new style restrictions
handling
* impunit.adb: Add s-rident.ads (System.Rident) and
s-restri (System.Restrictions)
* lib-writ.adb: Fix bug in writing restrictions string (last few
entries wrong)
* s-restri.ads, s-restri.adb: Change name Restrictions to
Run_Time_Restrictions to avoid conflict with package name.
Add circuit to read and acquire run time restrictions.
2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
* restrict.ads, restrict.adb: Use the new restriction
No_Task_Attributes_Package instead of the old No_Task_Attributes.
* sem_prag.adb: No_Task_Attributes is a synonym of
No_Task_Attributes_Package.
* snames.ads, snames.adb: New entry for proper handling of
No_Task_Attributes.
* s-rident.ads: Adding restriction No_Task_Attributes_Package
(AI-00249) that supersedes the GNAT specific restriction
No_Task_Attributes.
2004-02-04 Ed Schonberg <schonberg@gnat.com>
* sem_prag.adb:
(Analyze_Pragma, case Warnings): In an inlined body, as in an instance
body, an identifier may be wrapped in an unchecked conversion.
2004-02-04 Vincent Celier <celier@gnat.com>
* lib-writ.ads: Comment update for the W lines
* bld.adb: (Expression): An empty string list is static
* fname-uf.adb: Minor comment update
* fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
* gnatbind.adb: Initialize Cumulative_Restrictions with the
restrictions on the target.
From-SVN: r77233
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/5gtaprop.adb | 18 | ||||
-rw-r--r-- | gcc/ada/5gtasinf.adb | 79 | ||||
-rw-r--r-- | gcc/ada/5gtasinf.ads | 54 | ||||
-rw-r--r-- | gcc/ada/ChangeLog | 52 | ||||
-rw-r--r-- | gcc/ada/ali.adb | 23 | ||||
-rw-r--r-- | gcc/ada/ali.ads | 3 | ||||
-rw-r--r-- | gcc/ada/bindgen.adb | 75 | ||||
-rw-r--r-- | gcc/ada/bld.adb | 9 | ||||
-rw-r--r-- | gcc/ada/fname-uf.adb | 8 | ||||
-rw-r--r-- | gcc/ada/fname-uf.ads | 8 | ||||
-rw-r--r-- | gcc/ada/gnatbind.adb | 6 | ||||
-rw-r--r-- | gcc/ada/gprcmd.adb | 5 | ||||
-rw-r--r-- | gcc/ada/impunit.adb | 2 | ||||
-rw-r--r-- | gcc/ada/lib-writ.adb | 3 | ||||
-rw-r--r-- | gcc/ada/lib-writ.ads | 12 | ||||
-rw-r--r-- | gcc/ada/restrict.adb | 4 | ||||
-rw-r--r-- | gcc/ada/restrict.ads | 44 | ||||
-rw-r--r-- | gcc/ada/s-restri.adb | 96 | ||||
-rw-r--r-- | gcc/ada/s-restri.ads | 2 | ||||
-rw-r--r-- | gcc/ada/s-rident.ads | 7 | ||||
-rw-r--r-- | gcc/ada/sem_prag.adb | 12 | ||||
-rw-r--r-- | gcc/ada/snames.adb | 1 | ||||
-rw-r--r-- | gcc/ada/snames.ads | 661 |
23 files changed, 685 insertions, 499 deletions
diff --git a/gcc/ada/5gtaprop.adb b/gcc/ada/5gtaprop.adb index bb15b0a..3c70a34 100644 --- a/gcc/ada/5gtaprop.adb +++ b/gcc/ada/5gtaprop.adb @@ -141,7 +141,6 @@ package body System.Task_Primitives.Operations is procedure Stack_Guard (T : ST.Task_ID; On : Boolean) is pragma Unreferenced (T); pragma Unreferenced (On); - begin null; end Stack_Guard; @@ -251,7 +250,6 @@ package body System.Task_Primitives.Operations is procedure Finalize_Lock (L : access Lock) is Result : Interfaces.C.int; - begin Result := pthread_mutex_destroy (L); pragma Assert (Result = 0); @@ -259,7 +257,6 @@ package body System.Task_Primitives.Operations is procedure Finalize_Lock (L : access RTS_Lock) is Result : Interfaces.C.int; - begin Result := pthread_mutex_destroy (L); pragma Assert (Result = 0); @@ -271,10 +268,8 @@ package body System.Task_Primitives.Operations is procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is Result : Interfaces.C.int; - begin Result := pthread_mutex_lock (L); - Ceiling_Violation := Result = FUNC_ERR and then errno = EINVAL; pragma Assert (Result /= FUNC_ERR); end Write_Lock; @@ -283,7 +278,6 @@ package body System.Task_Primitives.Operations is (L : access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; - begin if not Single_Lock or else Global_Lock then Result := pthread_mutex_lock (L); @@ -293,7 +287,6 @@ package body System.Task_Primitives.Operations is procedure Write_Lock (T : Task_ID) is Result : Interfaces.C.int; - begin if not Single_Lock then Result := pthread_mutex_lock (T.Common.LL.L'Access); @@ -316,7 +309,6 @@ package body System.Task_Primitives.Operations is procedure Unlock (L : access Lock) is Result : Interfaces.C.int; - begin Result := pthread_mutex_unlock (L); pragma Assert (Result = 0); @@ -324,7 +316,6 @@ package body System.Task_Primitives.Operations is procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; - begin if not Single_Lock or else Global_Lock then Result := pthread_mutex_unlock (L); @@ -334,7 +325,6 @@ package body System.Task_Primitives.Operations is procedure Unlock (T : Task_ID) is Result : Interfaces.C.int; - begin if not Single_Lock then Result := pthread_mutex_unlock (T.Common.LL.L'Access); @@ -543,7 +533,6 @@ package body System.Task_Primitives.Operations is Reason : System.Tasking.Task_States) is pragma Unreferenced (Reason); - Result : Interfaces.C.int; begin Result := pthread_cond_signal (T.Common.LL.CV'Access); @@ -813,10 +802,8 @@ package body System.Task_Primitives.Operations is procedure Exit_Task is Result : Interfaces.C.int; - begin Result := pthread_set_ada_tcb (pthread_self, System.Null_Address); - pragma Assert (Result = 0); end Exit_Task; @@ -826,7 +813,6 @@ package body System.Task_Primitives.Operations is procedure Abort_Task (T : Task_ID) is Result : Interfaces.C.int; - begin Result := pthread_kill (T.Common.LL.Thread, @@ -854,7 +840,6 @@ package body System.Task_Primitives.Operations is function Check_No_Locks (Self_ID : ST.Task_ID) return Boolean is pragma Unreferenced (Self_ID); - begin return True; end Check_No_Locks; @@ -961,9 +946,10 @@ package body System.Task_Primitives.Operations is if Result = FUNC_ERR then raise Storage_Error; -- Insufficient resources. end if; - end Initialize_Athread_Library; +-- Package initialization + begin Initialize_Athread_Library; end System.Task_Primitives.Operations; diff --git a/gcc/ada/5gtasinf.adb b/gcc/ada/5gtasinf.adb index a275c31..5413ebf 100644 --- a/gcc/ada/5gtasinf.adb +++ b/gcc/ada/5gtasinf.adb @@ -77,16 +77,14 @@ package body System.Task_Info is --------- function "+" (R : Resource_T) return Resource_Vector_T is - Result : Resource_Vector_T := NO_RESOURCES; - + Result : Resource_Vector_T := NO_RESOURCES; begin Result (Resource_T'Pos (R)) := True; return Result; end "+"; function "+" (R1, R2 : Resource_T) return Resource_Vector_T is - Result : Resource_Vector_T := NO_RESOURCES; - + Result : Resource_Vector_T := NO_RESOURCES; begin Result (Resource_T'Pos (R1)) := True; Result (Resource_T'Pos (R2)) := True; @@ -94,44 +92,37 @@ package body System.Task_Info is end "+"; function "+" - (R : Resource_T; - S : Resource_Vector_T) - return Resource_Vector_T + (R : Resource_T; + S : Resource_Vector_T) return Resource_Vector_T is - Result : Resource_Vector_T := S; - + Result : Resource_Vector_T := S; begin Result (Resource_T'Pos (R)) := True; return Result; end "+"; function "+" - (S : Resource_Vector_T; - R : Resource_T) - return Resource_Vector_T + (S : Resource_Vector_T; + R : Resource_T) return Resource_Vector_T is - Result : Resource_Vector_T := S; - + Result : Resource_Vector_T := S; begin Result (Resource_T'Pos (R)) := True; return Result; end "+"; function "+" (S1, S2 : Resource_Vector_T) return Resource_Vector_T is - Result : Resource_Vector_T; - + Result : Resource_Vector_T; begin Result := S1 or S2; return Result; end "+"; function "-" - (S : Resource_Vector_T; - R : Resource_T) - return Resource_Vector_T + (S : Resource_Vector_T; + R : Resource_T) return Resource_Vector_T is - Result : Resource_Vector_T := S; - + Result : Resource_Vector_T := S; begin Result (Resource_T'Pos (R)) := False; return Result; @@ -177,21 +168,23 @@ package body System.Task_Info is end if; if Attr.NDPRI /= NDP_NONE then --- ??? why is that comment out, should it be removed ? + +-- ??? why is this commented out, should it be removed ? -- if Geteuid /= 0 then -- raise Permission_Error; -- end if; - Status := sproc_attr_setprio - (Sproc_Attr'Unrestricted_Access, - int (Attr.NDPRI)); + Status := + sproc_attr_setprio + (Sproc_Attr'Unrestricted_Access, int (Attr.NDPRI)); end if; - Status := sproc_create - (Sproc'Unrestricted_Access, - Sproc_Attr'Unrestricted_Access, - null, - System.Null_Address); + Status := + sproc_create + (Sproc'Unrestricted_Access, + Sproc_Attr'Unrestricted_Access, + null, + System.Null_Address); if Status /= 0 then Status := sproc_attr_destroy (Sproc_Attr'Unrestricted_Access); @@ -199,7 +192,6 @@ package body System.Task_Info is end if; Status := sproc_attr_destroy (Sproc_Attr'Unrestricted_Access); - end if; if Status /= 0 then @@ -217,12 +209,10 @@ package body System.Task_Info is (Sproc_Resources : Resource_Vector_T := NO_RESOURCES; CPU : CPU_Number := ANY_CPU; Resident : Page_Locking := NOLOCK; - NDPRI : Non_Degrading_Priority := NDP_NONE) - return sproc_t + NDPRI : Non_Degrading_Priority := NDP_NONE) return sproc_t is Attr : constant Sproc_Attributes := - (Sproc_Resources, CPU, Resident, NDPRI); - + (Sproc_Resources, CPU, Resident, NDPRI); begin return New_Sproc (Attr); end New_Sproc; @@ -233,8 +223,7 @@ package body System.Task_Info is function Unbound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; - Thread_Timeslice : Duration := 0.0) - return Thread_Attributes + Thread_Timeslice : Duration := 0.0) return Thread_Attributes is begin return (False, Thread_Resources, Thread_Timeslice); @@ -265,11 +254,10 @@ package body System.Task_Info is CPU : CPU_Number := ANY_CPU; Resident : Page_Locking := NOLOCK; NDPRI : Non_Degrading_Priority := NDP_NONE) - return Thread_Attributes + return Thread_Attributes is Sproc : constant sproc_t := New_Sproc - (Sproc_Resources, CPU, Resident, NDPRI); - + (Sproc_Resources, CPU, Resident, NDPRI); begin return (True, Thread_Resources, Thread_Timeslice, Sproc); end Bound_Thread_Attributes; @@ -280,8 +268,7 @@ package body System.Task_Info is function New_Unbound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; - Thread_Timeslice : Duration := 0.0) - return Task_Info_Type + Thread_Timeslice : Duration := 0.0) return Task_Info_Type is begin return new Thread_Attributes' @@ -295,8 +282,7 @@ package body System.Task_Info is function New_Bound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; Thread_Timeslice : Duration := 0.0; - Sproc : sproc_t) - return Task_Info_Type + Sproc : sproc_t) return Task_Info_Type is begin return new Thread_Attributes' @@ -314,11 +300,10 @@ package body System.Task_Info is CPU : CPU_Number := ANY_CPU; Resident : Page_Locking := NOLOCK; NDPRI : Non_Degrading_Priority := NDP_NONE) - return Task_Info_Type + return Task_Info_Type is Sproc : constant sproc_t := New_Sproc - (Sproc_Resources, CPU, Resident, NDPRI); - + (Sproc_Resources, CPU, Resident, NDPRI); begin return new Thread_Attributes' (True, Thread_Resources, Thread_Timeslice, Sproc); diff --git a/gcc/ada/5gtasinf.ads b/gcc/ada/5gtasinf.ads index 8cb4f23..f986bf9 100644 --- a/gcc/ada/5gtasinf.ads +++ b/gcc/ada/5gtasinf.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2003 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2004 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- -- @@ -63,14 +63,14 @@ package System.Task_Info is -- Each thread has a number of attributes that dictate it's scheduling. -- These attributes are: - -- + -- Bound_To_Sproc: whether the thread is bound to a specific sproc -- for its entire lifetime. - -- + -- Timeslice: Amount of time that a thread is allowed to execute -- before the system yeilds control to another thread -- of equal priority. - -- + -- Resource_Vector: A bitmask used to control the binding of threads -- to sprocs. -- @@ -113,33 +113,27 @@ package System.Task_Info is package Resource_Vector_Functions is function "+" - (R : Resource_T) - return Resource_Vector_T; + (R : Resource_T) return Resource_Vector_T; function "+" - (R1 : Resource_T; - R2 : Resource_T) - return Resource_Vector_T; + (R1 : Resource_T; + R2 : Resource_T) return Resource_Vector_T; function "+" - (R : Resource_T; - S : Resource_Vector_T) - return Resource_Vector_T; + (R : Resource_T; + S : Resource_Vector_T) return Resource_Vector_T; function "+" - (S : Resource_Vector_T; - R : Resource_T) - return Resource_Vector_T; + (S : Resource_Vector_T; + R : Resource_T) return Resource_Vector_T; function "+" - (S1 : Resource_Vector_T; - S2 : Resource_Vector_T) - return Resource_Vector_T; + (S1 : Resource_Vector_T; + S2 : Resource_Vector_T) return Resource_Vector_T; function "-" - (S : Resource_Vector_T; - R : Resource_T) - return Resource_Vector_T; + (S : Resource_Vector_T; + R : Resource_T) return Resource_Vector_T; end Resource_Vector_Functions; ---------------------- @@ -208,8 +202,7 @@ package System.Task_Info is (Sproc_Resources : Resource_Vector_T := NO_RESOURCES; CPU : CPU_Number := ANY_CPU; Resident : Page_Locking := NOLOCK; - NDPRI : Non_Degrading_Priority := NDP_NONE) - return sproc_t; + NDPRI : Non_Degrading_Priority := NDP_NONE) return sproc_t; -- Allocates a sproc_t control structure and creates the -- corresponding sproc. @@ -239,14 +232,12 @@ package System.Task_Info is function Unbound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; - Thread_Timeslice : Duration := 0.0) - return Thread_Attributes; + Thread_Timeslice : Duration := 0.0) return Thread_Attributes; function Bound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; Thread_Timeslice : Duration := 0.0; - Sproc : sproc_t) - return Thread_Attributes; + Sproc : sproc_t) return Thread_Attributes; function Bound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; @@ -255,20 +246,19 @@ package System.Task_Info is CPU : CPU_Number := ANY_CPU; Resident : Page_Locking := NOLOCK; NDPRI : Non_Degrading_Priority := NDP_NONE) - return Thread_Attributes; + return Thread_Attributes; type Task_Info_Type is access all Thread_Attributes; function New_Unbound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; Thread_Timeslice : Duration := 0.0) - return Task_Info_Type; + return Task_Info_Type; function New_Bound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; Thread_Timeslice : Duration := 0.0; - Sproc : sproc_t) - return Task_Info_Type; + Sproc : sproc_t) return Task_Info_Type; function New_Bound_Thread_Attributes (Thread_Resources : Resource_Vector_T := NO_RESOURCES; @@ -277,7 +267,7 @@ package System.Task_Info is CPU : CPU_Number := ANY_CPU; Resident : Page_Locking := NOLOCK; NDPRI : Non_Degrading_Priority := NDP_NONE) - return Task_Info_Type; + return Task_Info_Type; Unspecified_Task_Info : constant Task_Info_Type := null; diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b69ba86..af2e8e4 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,55 @@ +2004-02-04 Robert Dewar <dewar@gnat.com> + + * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb, + ali.ads, gprcmd.adb: Minor reformatting + + * bindgen.adb: Output restrictions string for new style restrictions + handling + + * impunit.adb: Add s-rident.ads (System.Rident) and + s-restri (System.Restrictions) + + * lib-writ.adb: Fix bug in writing restrictions string (last few + entries wrong) + + * s-restri.ads, s-restri.adb: Change name Restrictions to + Run_Time_Restrictions to avoid conflict with package name. + Add circuit to read and acquire run time restrictions. + +2004-02-04 Jose Ruiz <ruiz@act-europe.fr> + + * restrict.ads, restrict.adb: Use the new restriction + No_Task_Attributes_Package instead of the old No_Task_Attributes. + + * sem_prag.adb: No_Task_Attributes is a synonym of + No_Task_Attributes_Package. + + * snames.ads, snames.adb: New entry for proper handling of + No_Task_Attributes. + + * s-rident.ads: Adding restriction No_Task_Attributes_Package + (AI-00249) that supersedes the GNAT specific restriction + No_Task_Attributes. + +2004-02-04 Ed Schonberg <schonberg@gnat.com> + + * sem_prag.adb: + (Analyze_Pragma, case Warnings): In an inlined body, as in an instance + body, an identifier may be wrapped in an unchecked conversion. + +2004-02-04 Vincent Celier <celier@gnat.com> + + * lib-writ.ads: Comment update for the W lines + + * bld.adb: (Expression): An empty string list is static + + * fname-uf.adb: Minor comment update + + * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail + + * gnatbind.adb: Initialize Cumulative_Restrictions with the + restrictions on the target. + 2004-02-03 Kazu Hirata <kazu@cs.umass.edu> * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of diff --git a/gcc/ada/ali.adb b/gcc/ada/ali.adb index 8f340e8..66b7483 100644 --- a/gcc/ada/ali.adb +++ b/gcc/ada/ali.adb @@ -24,13 +24,13 @@ -- -- ------------------------------------------------------------------------------ -with Butil; use Butil; -with Debug; use Debug; -with Fname; use Fname; -with Namet; use Namet; -with Opt; use Opt; -with Osint; use Osint; -with Output; use Output; +with Butil; use Butil; +with Debug; use Debug; +with Fname; use Fname; +with Namet; use Namet; +with Opt; use Opt; +with Osint; use Osint; +with Output; use Output; package body ALI is @@ -105,8 +105,7 @@ package body ALI is Err : Boolean; Read_Xref : Boolean := False; Read_Lines : String := ""; - Ignore_Lines : String := "X") - return ALI_Id + Ignore_Lines : String := "X") return ALI_Id is P : Text_Ptr := T'First; Line : Logical_Line_Number := 1; @@ -328,8 +327,10 @@ package body ALI is -- Get_Name -- -------------- - function Get_Name (Lower : Boolean := False; - Ignore_Spaces : Boolean := False) return Name_Id is + function Get_Name + (Lower : Boolean := False; + Ignore_Spaces : Boolean := False) return Name_Id + is begin Name_Len := 0; Skip_Space; diff --git a/gcc/ada/ali.ads b/gcc/ada/ali.ads index c5fa093..7fbf1a4 100644 --- a/gcc/ada/ali.ads +++ b/gcc/ada/ali.ads @@ -814,8 +814,7 @@ package ALI is Err : Boolean; Read_Xref : Boolean := False; Read_Lines : String := ""; - Ignore_Lines : String := "X") - return ALI_Id; + Ignore_Lines : String := "X") return ALI_Id; -- Given the text, T, of an ALI file, F, scan and store the information -- from the file, and return the Id of the resulting entry in the ALI -- table. Switch settings may be modified as described above in the diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb index 83418623..f9b6b81 100644 --- a/gcc/ada/bindgen.adb +++ b/gcc/ada/bindgen.adb @@ -141,6 +141,16 @@ package body Bindgen is procedure Gen_Output_File_C (Filename : String); -- Generate output file (C code case) + procedure Gen_Restrictions_String_1; + -- Generate first restrictions string, which consists of the parameters + -- the first R line, as described in lib-writ.ads, with the restrictions + -- being those for the entire partition (from Cumulative_Restrictions). + + procedure Gen_Restrictions_String_2; + -- Generate first restrictions string, which consists of the parameters + -- the second R line, as described in lib-writ.ads, with the restrictions + -- being those for the entire partition (from Cumulative_Restrictions). + procedure Gen_Versions_Ada; -- Output series of definitions for unit versions (Ada code case) @@ -358,13 +368,15 @@ package body Bindgen is Set_String (" Restrictions : constant String :="); Write_Statement_Buffer; - Set_String (" """); - for J in All_Restrictions loop - null; - end loop; + Set_String (" """); + Gen_Restrictions_String_1; + Set_String (""" &"); + Write_Statement_Buffer; - Set_String (""";"); + Set_String (" """); + Gen_Restrictions_String_2; + Set_String (""" & ASCII.Nul;"); Write_Statement_Buffer; WBI (""); @@ -606,11 +618,8 @@ package body Bindgen is -- Generate definition for restrictions string Set_String (" const char *restrictions = """); - - for J in All_Restrictions loop - null; - end loop; - + Gen_Restrictions_String_1; + Gen_Restrictions_String_2; Set_String (""";"); Write_Statement_Buffer; @@ -2453,6 +2462,52 @@ package body Bindgen is Close_Binder_Output; end Gen_Output_File_C; + ------------------------------- + -- Gen_Restrictions_String_1 -- + ------------------------------- + + procedure Gen_Restrictions_String_1 is + begin + for R in All_Boolean_Restrictions loop + if Cumulative_Restrictions.Set (R) then + Set_Char ('r'); + elsif Cumulative_Restrictions.Violated (R) then + Set_Char ('v'); + else + Set_Char ('n'); + end if; + end loop; + end Gen_Restrictions_String_1; + + ------------------------------- + -- Gen_Restrictions_String_2 -- + ------------------------------- + + procedure Gen_Restrictions_String_2 is + begin + for RP in All_Parameter_Restrictions loop + if Cumulative_Restrictions.Set (RP) then + Set_Char ('r'); + Set_Int (Int (Cumulative_Restrictions.Value (RP))); + else + Set_Char ('n'); + end if; + + if not Cumulative_Restrictions.Violated (RP) + or else RP not in Checked_Parameter_Restrictions + then + Set_Char ('n'); + else + Set_Char ('v'); + Set_Int (Int (Cumulative_Restrictions.Count (RP))); + + if Cumulative_Restrictions.Unknown (RP) then + Set_Char ('+'); + end if; + end if; + end loop; + end Gen_Restrictions_String_2; + ---------------------- -- Gen_Versions_Ada -- ---------------------- diff --git a/gcc/ada/bld.adb b/gcc/ada/bld.adb index c690f63..d31ed69 100644 --- a/gcc/ada/bld.adb +++ b/gcc/ada/bld.adb @@ -525,11 +525,16 @@ package body Bld is First_Expression_In_List (Current_Term); begin - if String_Node /= Empty_Node then + if String_Node = Empty_Node then -- If String_Node is nil, it is an empty list, - -- there is nothing to do + -- set Expression_Kind if it is still Undecided + if Expression_Kind = Undecided then + Expression_Kind := Static_String; + end if; + + else Expression (Project => Project, First_Term => Tree.First_Term (String_Node), diff --git a/gcc/ada/fname-uf.adb b/gcc/ada/fname-uf.adb index 067e019..9852688 100644 --- a/gcc/ada/fname-uf.adb +++ b/gcc/ada/fname-uf.adb @@ -123,8 +123,8 @@ package body Fname.UF is ------------------- function Get_File_Name - (Uname : Unit_Name_Type; - Subunit : Boolean; + (Uname : Unit_Name_Type; + Subunit : Boolean; May_Fail : Boolean := False) return File_Name_Type is Unit_Char : Character; @@ -387,12 +387,12 @@ package body Fname.UF is -- If we are in the second search of the table, we accept -- the file name without checking, because we know that - -- the file does not exist. + -- the file does not exist, except when May_Fail is True, + -- in which case we return No_File. if No_File_Check then if May_Fail then return No_File; - else return Fnam; end if; diff --git a/gcc/ada/fname-uf.ads b/gcc/ada/fname-uf.ads index 24966bb..aad0e25 100644 --- a/gcc/ada/fname-uf.ads +++ b/gcc/ada/fname-uf.ads @@ -44,14 +44,18 @@ package Fname.UF is ----------------- function Get_File_Name - (Uname : Unit_Name_Type; - Subunit : Boolean; + (Uname : Unit_Name_Type; + Subunit : Boolean; May_Fail : Boolean := False) return File_Name_Type; -- This function returns the file name that corresponds to a given unit -- name, Uname. The Subunit parameter is set True for subunits, and -- false for all other kinds of units. The caller is responsible for -- ensuring that the unit name meets the requirements given in package -- Uname and described above. + -- When May_Fail is True, if the file cannot be found, this function + -- returns No_File. When it is False, if the file cannot be found, + -- a file name compatible with one pattern Source_File_Name pragma is + -- returned. procedure Initialize; -- Initialize internal tables. This is called automatically when the diff --git a/gcc/ada/gnatbind.adb b/gcc/ada/gnatbind.adb index 9dcb9f6..e4af0c3 100644 --- a/gcc/ada/gnatbind.adb +++ b/gcc/ada/gnatbind.adb @@ -447,6 +447,12 @@ begin Targparm.Get_Target_Parameters; + -- Initialize Cumulative_Restrictions with the restrictions on the target + -- scanned from the system.ads file. Then as we read ALI files, we will + -- accumulate additional restrictions specified in other files. + + Cumulative_Restrictions := Targparm.Restrictions_On_Target; + -- On OpenVMS, when -L is used, all external names used in pragmas Export -- are in upper case. The reason is that on OpenVMS, the macro-assembler -- MACASM-32, used to build Stand-Alone Libraries, only understands diff --git a/gcc/ada/gprcmd.adb b/gcc/ada/gprcmd.adb index 08ea8bf..369dae0 100644 --- a/gcc/ada/gprcmd.adb +++ b/gcc/ada/gprcmd.adb @@ -113,6 +113,7 @@ procedure Gprcmd is Put_Line (Standard_Error, "bad call to gprcmd with" & Argument_Count'Img & " arguments."); + for J in 0 .. Argument_Count loop Put (Standard_Error, Argument (J) & " "); end loop; @@ -473,9 +474,9 @@ begin end if; end; - else - -- Uknown command + -- Unknown command + else Check_Args (False); end if; end; diff --git a/gcc/ada/impunit.adb b/gcc/ada/impunit.adb index f501d95..1f6b5b6 100644 --- a/gcc/ada/impunit.adb +++ b/gcc/ada/impunit.adb @@ -297,6 +297,8 @@ package body Impunit is "s-assert", -- System.Assertions "s-memory", -- System.Memory "s-parint", -- System.Partition_Interface + "s-restri", -- System.Restrictions + "s-rident", -- System.Rident "s-tasinf", -- System.Task_Info "s-wchcnv", -- System.Wch_Cnv "s-wchcon"); -- System.Wch_Con diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb index 8cf1e1e..2165505 100644 --- a/gcc/ada/lib-writ.adb +++ b/gcc/ada/lib-writ.adb @@ -691,7 +691,7 @@ package body Lib.Writ is end loop; end Write_With_Lines; - -- Start of processing for Writ_ALI + -- Start of processing for Write_ALI begin -- We never write an ALI file if the original operating mode was @@ -919,7 +919,6 @@ package body Lib.Writ is then if not Has_No_Elaboration_Code (Cunit (Unit)) then Main_Restrictions.Violated (No_Elaboration_Code) := True; - Main_Restrictions.Count (No_Elaboration_Code) := -1; end if; end if; end loop; diff --git a/gcc/ada/lib-writ.ads b/gcc/ada/lib-writ.ads index cdd456b..6aa8dcf 100644 --- a/gcc/ada/lib-writ.ads +++ b/gcc/ada/lib-writ.ads @@ -406,11 +406,13 @@ package Lib.Writ is -- One of these lines is present for each unit that is mentioned in -- an explicit with clause by the current unit. The first parameter -- is the unit name in internal format. The second parameter is the - -- file name of the file that must be compiled to compile this unit - -- (which is usually the file for the body, except for packages - -- which have no body). The third parameter is the file name of the - -- library information file that contains the results of compiling - -- this unit. The optional modifiers are used as follows: + -- file name of the file that must be compiled to compile this unit. + -- It is usually the file for the body, except for packages + -- which have no body; for units that need a body, if the source file + -- for the body cannot be found, the file name of the spec is used + -- instead. The third parameter is the file name of the library + -- information file that contains the results of compiling this unit. + -- The optional modifiers are used as follows: -- -- E pragma Elaborate applies to this unit -- diff --git a/gcc/ada/restrict.adb b/gcc/ada/restrict.adb index 2f2f153..4e72227 100644 --- a/gcc/ada/restrict.adb +++ b/gcc/ada/restrict.adb @@ -372,7 +372,7 @@ package body Restrict is and then Restrictions.Set (No_Protected_Type_Allocators) and then Restrictions.Set (No_Local_Protected_Objects) and then Restrictions.Set (No_Requeue_Statements) - and then Restrictions.Set (No_Task_Attributes) + and then Restrictions.Set (No_Task_Attributes_Package) and then Restrictions.Set (Max_Asynchronous_Select_Nesting) and then Restrictions.Set (Max_Task_Entries) and then Restrictions.Set (Max_Protected_Entries) @@ -472,7 +472,7 @@ package body Restrict is Set_Restriction (No_Protected_Type_Allocators, N); Set_Restriction (No_Local_Protected_Objects, N); Set_Restriction (No_Requeue_Statements, N); - Set_Restriction (No_Task_Attributes, N); + Set_Restriction (No_Task_Attributes_Package, N); -- Set parameter restrictions diff --git a/gcc/ada/restrict.ads b/gcc/ada/restrict.ads index f29cb22..0d2f72f 100644 --- a/gcc/ada/restrict.ads +++ b/gcc/ada/restrict.ads @@ -77,27 +77,27 @@ package Restrict is end record; Unit_Array : constant array (Positive range <>) of Unit_Entry := ( - (No_Asynchronous_Control, "a-astaco"), - (No_Calendar, "a-calend"), - (No_Calendar, "calendar"), - (No_Delay, "a-calend"), - (No_Delay, "calendar"), - (No_Dynamic_Priorities, "a-dynpri"), - (No_Finalization, "a-finali"), - (No_IO, "a-direio"), - (No_IO, "directio"), - (No_IO, "a-sequio"), - (No_IO, "sequenio"), - (No_IO, "a-ststio"), - (No_IO, "a-textio"), - (No_IO, "text_io "), - (No_IO, "a-witeio"), - (No_Task_Attributes, "a-tasatt"), - (No_Streams, "a-stream"), - (No_Unchecked_Conversion, "a-unccon"), - (No_Unchecked_Conversion, "unchconv"), - (No_Unchecked_Deallocation, "a-uncdea"), - (No_Unchecked_Deallocation, "unchdeal")); + (No_Asynchronous_Control, "a-astaco"), + (No_Calendar, "a-calend"), + (No_Calendar, "calendar"), + (No_Delay, "a-calend"), + (No_Delay, "calendar"), + (No_Dynamic_Priorities, "a-dynpri"), + (No_Finalization, "a-finali"), + (No_IO, "a-direio"), + (No_IO, "directio"), + (No_IO, "a-sequio"), + (No_IO, "sequenio"), + (No_IO, "a-ststio"), + (No_IO, "a-textio"), + (No_IO, "text_io "), + (No_IO, "a-witeio"), + (No_Task_Attributes_Package, "a-tasatt"), + (No_Streams, "a-stream"), + (No_Unchecked_Conversion, "a-unccon"), + (No_Unchecked_Conversion, "unchconv"), + (No_Unchecked_Deallocation, "a-uncdea"), + (No_Unchecked_Deallocation, "unchdeal")); -- The following map has True for all GNAT pragmas. It is used to -- implement pragma Restrictions (No_Implementation_Restrictions) @@ -123,7 +123,7 @@ package Restrict is No_Select_Statements => True, No_Standard_Storage_Pools => True, No_Streams => True, - No_Task_Attributes => True, + No_Task_Attributes_Package => True, No_Task_Termination => True, No_Wide_Characters => True, Static_Priorities => True, diff --git a/gcc/ada/s-restri.adb b/gcc/ada/s-restri.adb index e258e5e..be39f23 100644 --- a/gcc/ada/s-restri.adb +++ b/gcc/ada/s-restri.adb @@ -40,9 +40,9 @@ package body System.Restrictions is function Abort_Allowed return Boolean is begin - return Restrictions.Violated (No_Abort_Statements) + return Run_Time_Restrictions.Violated (No_Abort_Statements) or else - Restrictions.Violated (Max_Asynchronous_Select_Nesting); + Run_Time_Restrictions.Violated (Max_Asynchronous_Select_Nesting); end Abort_Allowed; --------------------- @@ -51,12 +51,98 @@ package body System.Restrictions is function Tasking_Allowed return Boolean is begin - return Restrictions.Violated (Max_Tasks) + return Run_Time_Restrictions.Violated (Max_Tasks) or else - Restrictions.Violated (No_Tasking); + Run_Time_Restrictions.Violated (No_Tasking); end Tasking_Allowed; +-- Package elaboration code (acquire restrictions) + begin - null; + Acquire_Restrictions : declare + + subtype Big_String is String (Positive); + type Big_String_Ptr is access all Big_String; + + RString : Big_String_Ptr; + pragma Import (C, RString, "__gl_restrictions"); + + P : Natural := 1; + -- Pointer to scan string + + C : Character; + -- Next character from string + + function Get_Char return Character; + -- Get next character from string + + function Get_Natural return Natural; + -- Scan out natural value known to be in range, updating P past it + + -------------- + -- Get_Char -- + -------------- + + function Get_Char return Character is + begin + P := P + 1; + return RString (P - 1); + end Get_Char; + + ----------------- + -- Get_Natural -- + ----------------- + + function Get_Natural return Natural is + N : Natural := 0; + + begin + while RString (P) in '0' .. '9' loop + N := N * 10 + (Character'Pos (Get_Char) - Character'Pos ('0')); + end loop; + + return N; + end Get_Natural; + + -- Start of processing for Acquire_Restrictions + + begin + -- Acquire data corresponding to first R line + + for R in All_Boolean_Restrictions loop + C := Get_Char; + + if C = 'v' then + Run_Time_Restrictions.Violated (R) := True; + + elsif C = 'r' then + Run_Time_Restrictions.Set (R) := True; + end if; + end loop; + + -- Acquire data corresponding to second R line + + for RP in All_Parameter_Restrictions loop + + -- Acquire restrictions pragma information + + if Get_Char = 'r' then + Run_Time_Restrictions.Set (RP) := True; + Run_Time_Restrictions.Value (RP) := Get_Natural; + end if; + + -- Acquire restrictions violations information + + if Get_Char = 'v' then + Run_Time_Restrictions.Violated (RP) := True; + Run_Time_Restrictions.Count (RP) := Get_Natural; + + if RString (P) = '+' then + Run_Time_Restrictions.Unknown (RP) := True; + P := P + 1; + end if; + end if; + end loop; + end Acquire_Restrictions; end System.Restrictions; diff --git a/gcc/ada/s-restri.ads b/gcc/ada/s-restri.ads index 202428f..2160f07 100644 --- a/gcc/ada/s-restri.ads +++ b/gcc/ada/s-restri.ads @@ -39,7 +39,7 @@ package System.Restrictions is pragma Discard_Names; package Rident is new System.Rident; - Restrictions : Rident.Restrictions_Info; + Run_Time_Restrictions : Rident.Restrictions_Info; ------------------ -- Subprograms -- diff --git a/gcc/ada/s-rident.ads b/gcc/ada/s-rident.ads index 37bef81..6bc09ff 100644 --- a/gcc/ada/s-rident.ads +++ b/gcc/ada/s-rident.ads @@ -97,7 +97,7 @@ package System.Rident is No_Standard_Storage_Pools, -- GNAT No_Streams, -- GNAT No_Task_Allocators, -- (RM D.7(7)) - No_Task_Attributes, -- GNAT + No_Task_Attributes_Package, -- GNAT No_Task_Hierarchy, -- (RM D.7(3), H.4(3)) No_Task_Termination, -- GNAT (Ravenscar) No_Tasking, -- GNAT @@ -154,8 +154,9 @@ package System.Rident is -- Synonyms permitted for historical purposes of compatibility - -- No_Requeue synonym for No_Requeue_Statements - -- No_Tasking synonym for Max_Tasks => 0 + -- No_Requeue synonym for No_Requeue_Statements + -- No_Tasking synonym for Max_Tasks => 0 + -- No_Task_Attributes synonym for No_Task_Attributes_Package subtype All_Restrictions is Restriction_Id range Boolean_Entry_Barriers .. Max_Storage_At_Blocking; diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index b09df0b..151721c 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -3280,6 +3280,15 @@ package body Sem_Prag is Set_Restriction (No_Requeue_Statements, N); Set_Warning (No_Requeue_Statements); + -- No_Task_Attributes is a synonym for + -- No_Task_Attributes_Package + + elsif Chars (Expr) = Name_No_Task_Attributes then + Check_Restriction + (No_Implementation_Restrictions, Arg); + Set_Restriction (No_Task_Attributes_Package, N); + Set_Warning (No_Task_Attributes_Package); + -- Normal processing for all other cases else @@ -9648,7 +9657,8 @@ package body Sem_Prag is -- the formal may be wrapped in a conversion if the actual -- is a conversion. Retrieve the real entity name. - if In_Instance_Body + if (In_Instance_Body + or else In_Inlined_Body) and then Nkind (E_Id) = N_Unchecked_Type_Conversion then E_Id := Expression (E_Id); diff --git a/gcc/ada/snames.adb b/gcc/ada/snames.adb index 769da8e..4738620c 100644 --- a/gcc/ada/snames.adb +++ b/gcc/ada/snames.adb @@ -335,6 +335,7 @@ package body Snames is "parameter_types#" & "reference#" & "no_requeue#" & + "no_task_attributes#" & "restricted#" & "result_mechanism#" & "result_type#" & diff --git a/gcc/ada/snames.ads b/gcc/ada/snames.ads index 164a29d..679cd56 100644 --- a/gcc/ada/snames.ads +++ b/gcc/ada/snames.ads @@ -524,33 +524,34 @@ package Snames is Name_Parameter_Types : constant Name_Id := N + 275; Name_Reference : constant Name_Id := N + 276; Name_No_Requeue : constant Name_Id := N + 277; - Name_Restricted : constant Name_Id := N + 278; - Name_Result_Mechanism : constant Name_Id := N + 279; - Name_Result_Type : constant Name_Id := N + 280; - Name_Runtime : constant Name_Id := N + 281; - Name_SB : constant Name_Id := N + 282; - Name_Secondary_Stack_Size : constant Name_Id := N + 283; - Name_Section : constant Name_Id := N + 284; - Name_Semaphore : constant Name_Id := N + 285; - Name_Spec_File_Name : constant Name_Id := N + 286; - Name_Static : constant Name_Id := N + 287; - Name_Stack_Size : constant Name_Id := N + 288; - Name_Subunit_File_Name : constant Name_Id := N + 289; - Name_Task_Stack_Size_Default : constant Name_Id := N + 290; - Name_Task_Type : constant Name_Id := N + 291; - Name_Time_Slicing_Enabled : constant Name_Id := N + 292; - Name_Top_Guard : constant Name_Id := N + 293; - Name_UBA : constant Name_Id := N + 294; - Name_UBS : constant Name_Id := N + 295; - Name_UBSB : constant Name_Id := N + 296; - Name_Unit_Name : constant Name_Id := N + 297; - Name_Unknown : constant Name_Id := N + 298; - Name_Unrestricted : constant Name_Id := N + 299; - Name_Uppercase : constant Name_Id := N + 300; - Name_User : constant Name_Id := N + 301; - Name_VAX_Float : constant Name_Id := N + 302; - Name_VMS : constant Name_Id := N + 303; - Name_Working_Storage : constant Name_Id := N + 304; + Name_No_Task_Attributes : constant Name_Id := N + 278; + Name_Restricted : constant Name_Id := N + 279; + Name_Result_Mechanism : constant Name_Id := N + 280; + Name_Result_Type : constant Name_Id := N + 281; + Name_Runtime : constant Name_Id := N + 282; + Name_SB : constant Name_Id := N + 283; + Name_Secondary_Stack_Size : constant Name_Id := N + 284; + Name_Section : constant Name_Id := N + 285; + Name_Semaphore : constant Name_Id := N + 286; + Name_Spec_File_Name : constant Name_Id := N + 287; + Name_Static : constant Name_Id := N + 288; + Name_Stack_Size : constant Name_Id := N + 289; + Name_Subunit_File_Name : constant Name_Id := N + 290; + Name_Task_Stack_Size_Default : constant Name_Id := N + 291; + Name_Task_Type : constant Name_Id := N + 292; + Name_Time_Slicing_Enabled : constant Name_Id := N + 293; + Name_Top_Guard : constant Name_Id := N + 294; + Name_UBA : constant Name_Id := N + 295; + Name_UBS : constant Name_Id := N + 296; + Name_UBSB : constant Name_Id := N + 297; + Name_Unit_Name : constant Name_Id := N + 298; + Name_Unknown : constant Name_Id := N + 299; + Name_Unrestricted : constant Name_Id := N + 300; + Name_Uppercase : constant Name_Id := N + 301; + Name_User : constant Name_Id := N + 302; + Name_VAX_Float : constant Name_Id := N + 303; + Name_VMS : constant Name_Id := N + 304; + Name_Working_Storage : constant Name_Id := N + 305; -- 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 @@ -564,158 +565,158 @@ 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 + 305; - Name_Abort_Signal : constant Name_Id := N + 305; -- GNAT - Name_Access : constant Name_Id := N + 306; - Name_Address : constant Name_Id := N + 307; - Name_Address_Size : constant Name_Id := N + 308; -- GNAT - Name_Aft : constant Name_Id := N + 309; - Name_Alignment : constant Name_Id := N + 310; - Name_Asm_Input : constant Name_Id := N + 311; -- GNAT - Name_Asm_Output : constant Name_Id := N + 312; -- GNAT - Name_AST_Entry : constant Name_Id := N + 313; -- VMS - Name_Bit : constant Name_Id := N + 314; -- GNAT - Name_Bit_Order : constant Name_Id := N + 315; - Name_Bit_Position : constant Name_Id := N + 316; -- GNAT - Name_Body_Version : constant Name_Id := N + 317; - Name_Callable : constant Name_Id := N + 318; - Name_Caller : constant Name_Id := N + 319; - Name_Code_Address : constant Name_Id := N + 320; -- GNAT - Name_Component_Size : constant Name_Id := N + 321; - Name_Compose : constant Name_Id := N + 322; - Name_Constrained : constant Name_Id := N + 323; - Name_Count : constant Name_Id := N + 324; - Name_Default_Bit_Order : constant Name_Id := N + 325; -- GNAT - Name_Definite : constant Name_Id := N + 326; - Name_Delta : constant Name_Id := N + 327; - Name_Denorm : constant Name_Id := N + 328; - Name_Digits : constant Name_Id := N + 329; - Name_Elaborated : constant Name_Id := N + 330; -- GNAT - Name_Emax : constant Name_Id := N + 331; -- Ada 83 - Name_Enum_Rep : constant Name_Id := N + 332; -- GNAT - Name_Epsilon : constant Name_Id := N + 333; -- Ada 83 - Name_Exponent : constant Name_Id := N + 334; - Name_External_Tag : constant Name_Id := N + 335; - Name_First : constant Name_Id := N + 336; - Name_First_Bit : constant Name_Id := N + 337; - Name_Fixed_Value : constant Name_Id := N + 338; -- GNAT - Name_Fore : constant Name_Id := N + 339; - Name_Has_Discriminants : constant Name_Id := N + 340; -- GNAT - Name_Identity : constant Name_Id := N + 341; - Name_Img : constant Name_Id := N + 342; -- GNAT - Name_Integer_Value : constant Name_Id := N + 343; -- GNAT - Name_Large : constant Name_Id := N + 344; -- Ada 83 - Name_Last : constant Name_Id := N + 345; - Name_Last_Bit : constant Name_Id := N + 346; - Name_Leading_Part : constant Name_Id := N + 347; - Name_Length : constant Name_Id := N + 348; - Name_Machine_Emax : constant Name_Id := N + 349; - Name_Machine_Emin : constant Name_Id := N + 350; - Name_Machine_Mantissa : constant Name_Id := N + 351; - Name_Machine_Overflows : constant Name_Id := N + 352; - Name_Machine_Radix : constant Name_Id := N + 353; - Name_Machine_Rounds : constant Name_Id := N + 354; - Name_Machine_Size : constant Name_Id := N + 355; -- GNAT - Name_Mantissa : constant Name_Id := N + 356; -- Ada 83 - Name_Max_Size_In_Storage_Elements : constant Name_Id := N + 357; - Name_Maximum_Alignment : constant Name_Id := N + 358; -- GNAT - Name_Mechanism_Code : constant Name_Id := N + 359; -- GNAT - Name_Model_Emin : constant Name_Id := N + 360; - Name_Model_Epsilon : constant Name_Id := N + 361; - Name_Model_Mantissa : constant Name_Id := N + 362; - Name_Model_Small : constant Name_Id := N + 363; - Name_Modulus : constant Name_Id := N + 364; - Name_Null_Parameter : constant Name_Id := N + 365; -- GNAT - Name_Object_Size : constant Name_Id := N + 366; -- GNAT - Name_Partition_ID : constant Name_Id := N + 367; - Name_Passed_By_Reference : constant Name_Id := N + 368; -- GNAT - Name_Pool_Address : constant Name_Id := N + 369; - Name_Pos : constant Name_Id := N + 370; - Name_Position : constant Name_Id := N + 371; - Name_Range : constant Name_Id := N + 372; - Name_Range_Length : constant Name_Id := N + 373; -- GNAT - Name_Round : constant Name_Id := N + 374; - Name_Safe_Emax : constant Name_Id := N + 375; -- Ada 83 - Name_Safe_First : constant Name_Id := N + 376; - Name_Safe_Large : constant Name_Id := N + 377; -- Ada 83 - Name_Safe_Last : constant Name_Id := N + 378; - Name_Safe_Small : constant Name_Id := N + 379; -- Ada 83 - Name_Scale : constant Name_Id := N + 380; - Name_Scaling : constant Name_Id := N + 381; - Name_Signed_Zeros : constant Name_Id := N + 382; - Name_Size : constant Name_Id := N + 383; - Name_Small : constant Name_Id := N + 384; - Name_Storage_Size : constant Name_Id := N + 385; - Name_Storage_Unit : constant Name_Id := N + 386; -- GNAT - Name_Tag : constant Name_Id := N + 387; - Name_Target_Name : constant Name_Id := N + 388; -- GNAT - Name_Terminated : constant Name_Id := N + 389; - Name_To_Address : constant Name_Id := N + 390; -- GNAT - Name_Type_Class : constant Name_Id := N + 391; -- GNAT - Name_UET_Address : constant Name_Id := N + 392; -- GNAT - Name_Unbiased_Rounding : constant Name_Id := N + 393; - Name_Unchecked_Access : constant Name_Id := N + 394; - Name_Unconstrained_Array : constant Name_Id := N + 395; - Name_Universal_Literal_String : constant Name_Id := N + 396; -- GNAT - Name_Unrestricted_Access : constant Name_Id := N + 397; -- GNAT - Name_VADS_Size : constant Name_Id := N + 398; -- GNAT - Name_Val : constant Name_Id := N + 399; - Name_Valid : constant Name_Id := N + 400; - Name_Value_Size : constant Name_Id := N + 401; -- GNAT - Name_Version : constant Name_Id := N + 402; - Name_Wchar_T_Size : constant Name_Id := N + 403; -- GNAT - Name_Wide_Width : constant Name_Id := N + 404; - Name_Width : constant Name_Id := N + 405; - Name_Word_Size : constant Name_Id := N + 406; -- GNAT + First_Attribute_Name : constant Name_Id := N + 306; + Name_Abort_Signal : constant Name_Id := N + 306; -- GNAT + Name_Access : constant Name_Id := N + 307; + Name_Address : constant Name_Id := N + 308; + Name_Address_Size : constant Name_Id := N + 309; -- GNAT + Name_Aft : constant Name_Id := N + 310; + Name_Alignment : constant Name_Id := N + 311; + Name_Asm_Input : constant Name_Id := N + 312; -- GNAT + Name_Asm_Output : constant Name_Id := N + 313; -- GNAT + Name_AST_Entry : constant Name_Id := N + 314; -- VMS + Name_Bit : constant Name_Id := N + 315; -- GNAT + Name_Bit_Order : constant Name_Id := N + 316; + Name_Bit_Position : constant Name_Id := N + 317; -- GNAT + Name_Body_Version : constant Name_Id := N + 318; + Name_Callable : constant Name_Id := N + 319; + Name_Caller : constant Name_Id := N + 320; + Name_Code_Address : constant Name_Id := N + 321; -- GNAT + Name_Component_Size : constant Name_Id := N + 322; + Name_Compose : constant Name_Id := N + 323; + Name_Constrained : constant Name_Id := N + 324; + Name_Count : constant Name_Id := N + 325; + Name_Default_Bit_Order : constant Name_Id := N + 326; -- GNAT + Name_Definite : constant Name_Id := N + 327; + Name_Delta : constant Name_Id := N + 328; + Name_Denorm : constant Name_Id := N + 329; + Name_Digits : constant Name_Id := N + 330; + Name_Elaborated : constant Name_Id := N + 331; -- GNAT + Name_Emax : constant Name_Id := N + 332; -- Ada 83 + Name_Enum_Rep : constant Name_Id := N + 333; -- GNAT + Name_Epsilon : constant Name_Id := N + 334; -- Ada 83 + Name_Exponent : constant Name_Id := N + 335; + Name_External_Tag : constant Name_Id := N + 336; + Name_First : constant Name_Id := N + 337; + Name_First_Bit : constant Name_Id := N + 338; + Name_Fixed_Value : constant Name_Id := N + 339; -- GNAT + Name_Fore : constant Name_Id := N + 340; + Name_Has_Discriminants : constant Name_Id := N + 341; -- GNAT + Name_Identity : constant Name_Id := N + 342; + Name_Img : constant Name_Id := N + 343; -- GNAT + Name_Integer_Value : constant Name_Id := N + 344; -- GNAT + Name_Large : constant Name_Id := N + 345; -- Ada 83 + Name_Last : constant Name_Id := N + 346; + Name_Last_Bit : constant Name_Id := N + 347; + Name_Leading_Part : constant Name_Id := N + 348; + Name_Length : constant Name_Id := N + 349; + Name_Machine_Emax : constant Name_Id := N + 350; + Name_Machine_Emin : constant Name_Id := N + 351; + Name_Machine_Mantissa : constant Name_Id := N + 352; + Name_Machine_Overflows : constant Name_Id := N + 353; + Name_Machine_Radix : constant Name_Id := N + 354; + Name_Machine_Rounds : constant Name_Id := N + 355; + Name_Machine_Size : constant Name_Id := N + 356; -- GNAT + Name_Mantissa : constant Name_Id := N + 357; -- Ada 83 + Name_Max_Size_In_Storage_Elements : constant Name_Id := N + 358; + Name_Maximum_Alignment : constant Name_Id := N + 359; -- GNAT + Name_Mechanism_Code : constant Name_Id := N + 360; -- GNAT + Name_Model_Emin : constant Name_Id := N + 361; + Name_Model_Epsilon : constant Name_Id := N + 362; + Name_Model_Mantissa : constant Name_Id := N + 363; + Name_Model_Small : constant Name_Id := N + 364; + Name_Modulus : constant Name_Id := N + 365; + Name_Null_Parameter : constant Name_Id := N + 366; -- GNAT + Name_Object_Size : constant Name_Id := N + 367; -- GNAT + Name_Partition_ID : constant Name_Id := N + 368; + Name_Passed_By_Reference : constant Name_Id := N + 369; -- GNAT + Name_Pool_Address : constant Name_Id := N + 370; + Name_Pos : constant Name_Id := N + 371; + Name_Position : constant Name_Id := N + 372; + Name_Range : constant Name_Id := N + 373; + Name_Range_Length : constant Name_Id := N + 374; -- GNAT + Name_Round : constant Name_Id := N + 375; + Name_Safe_Emax : constant Name_Id := N + 376; -- Ada 83 + Name_Safe_First : constant Name_Id := N + 377; + Name_Safe_Large : constant Name_Id := N + 378; -- Ada 83 + Name_Safe_Last : constant Name_Id := N + 379; + Name_Safe_Small : constant Name_Id := N + 380; -- Ada 83 + Name_Scale : constant Name_Id := N + 381; + Name_Scaling : constant Name_Id := N + 382; + Name_Signed_Zeros : constant Name_Id := N + 383; + Name_Size : constant Name_Id := N + 384; + Name_Small : constant Name_Id := N + 385; + Name_Storage_Size : constant Name_Id := N + 386; + Name_Storage_Unit : constant Name_Id := N + 387; -- GNAT + Name_Tag : constant Name_Id := N + 388; + Name_Target_Name : constant Name_Id := N + 389; -- GNAT + Name_Terminated : constant Name_Id := N + 390; + Name_To_Address : constant Name_Id := N + 391; -- GNAT + Name_Type_Class : constant Name_Id := N + 392; -- GNAT + Name_UET_Address : constant Name_Id := N + 393; -- GNAT + Name_Unbiased_Rounding : constant Name_Id := N + 394; + Name_Unchecked_Access : constant Name_Id := N + 395; + Name_Unconstrained_Array : constant Name_Id := N + 396; + Name_Universal_Literal_String : constant Name_Id := N + 397; -- GNAT + Name_Unrestricted_Access : constant Name_Id := N + 398; -- GNAT + Name_VADS_Size : constant Name_Id := N + 399; -- GNAT + Name_Val : constant Name_Id := N + 400; + Name_Valid : constant Name_Id := N + 401; + Name_Value_Size : constant Name_Id := N + 402; -- GNAT + Name_Version : constant Name_Id := N + 403; + Name_Wchar_T_Size : constant Name_Id := N + 404; -- GNAT + Name_Wide_Width : constant Name_Id := N + 405; + Name_Width : constant Name_Id := N + 406; + Name_Word_Size : constant Name_Id := N + 407; -- GNAT -- Attributes that designate attributes returning renamable functions, -- i.e. functions that return other than a universal value. - First_Renamable_Function_Attribute : constant Name_Id := N + 407; - Name_Adjacent : constant Name_Id := N + 407; - Name_Ceiling : constant Name_Id := N + 408; - Name_Copy_Sign : constant Name_Id := N + 409; - Name_Floor : constant Name_Id := N + 410; - Name_Fraction : constant Name_Id := N + 411; - Name_Image : constant Name_Id := N + 412; - Name_Input : constant Name_Id := N + 413; - Name_Machine : constant Name_Id := N + 414; - Name_Max : constant Name_Id := N + 415; - Name_Min : constant Name_Id := N + 416; - Name_Model : constant Name_Id := N + 417; - Name_Pred : constant Name_Id := N + 418; - Name_Remainder : constant Name_Id := N + 419; - Name_Rounding : constant Name_Id := N + 420; - Name_Succ : constant Name_Id := N + 421; - Name_Truncation : constant Name_Id := N + 422; - Name_Value : constant Name_Id := N + 423; - Name_Wide_Image : constant Name_Id := N + 424; - Name_Wide_Value : constant Name_Id := N + 425; - Last_Renamable_Function_Attribute : constant Name_Id := N + 425; + First_Renamable_Function_Attribute : constant Name_Id := N + 408; + Name_Adjacent : constant Name_Id := N + 408; + Name_Ceiling : constant Name_Id := N + 409; + Name_Copy_Sign : constant Name_Id := N + 410; + Name_Floor : constant Name_Id := N + 411; + Name_Fraction : constant Name_Id := N + 412; + Name_Image : constant Name_Id := N + 413; + Name_Input : constant Name_Id := N + 414; + Name_Machine : constant Name_Id := N + 415; + Name_Max : constant Name_Id := N + 416; + Name_Min : constant Name_Id := N + 417; + Name_Model : constant Name_Id := N + 418; + Name_Pred : constant Name_Id := N + 419; + Name_Remainder : constant Name_Id := N + 420; + Name_Rounding : constant Name_Id := N + 421; + Name_Succ : constant Name_Id := N + 422; + Name_Truncation : constant Name_Id := N + 423; + Name_Value : constant Name_Id := N + 424; + Name_Wide_Image : constant Name_Id := N + 425; + Name_Wide_Value : constant Name_Id := N + 426; + Last_Renamable_Function_Attribute : constant Name_Id := N + 426; -- Attributes that designate procedures - First_Procedure_Attribute : constant Name_Id := N + 426; - Name_Output : constant Name_Id := N + 426; - Name_Read : constant Name_Id := N + 427; - Name_Write : constant Name_Id := N + 428; - Last_Procedure_Attribute : constant Name_Id := N + 428; + First_Procedure_Attribute : constant Name_Id := N + 427; + Name_Output : constant Name_Id := N + 427; + Name_Read : constant Name_Id := N + 428; + Name_Write : constant Name_Id := N + 429; + Last_Procedure_Attribute : constant Name_Id := N + 429; -- Remaining attributes are ones that return entities - First_Entity_Attribute_Name : constant Name_Id := N + 429; - Name_Elab_Body : constant Name_Id := N + 429; -- GNAT - Name_Elab_Spec : constant Name_Id := N + 430; -- GNAT - Name_Storage_Pool : constant Name_Id := N + 431; + First_Entity_Attribute_Name : constant Name_Id := N + 430; + Name_Elab_Body : constant Name_Id := N + 430; -- GNAT + Name_Elab_Spec : constant Name_Id := N + 431; -- GNAT + Name_Storage_Pool : constant Name_Id := N + 432; -- These attributes are the ones that return types - First_Type_Attribute_Name : constant Name_Id := N + 432; - Name_Base : constant Name_Id := N + 432; - Name_Class : constant Name_Id := N + 433; - Last_Type_Attribute_Name : constant Name_Id := N + 433; - Last_Entity_Attribute_Name : constant Name_Id := N + 433; - Last_Attribute_Name : constant Name_Id := N + 433; + First_Type_Attribute_Name : constant Name_Id := N + 433; + Name_Base : constant Name_Id := N + 433; + Name_Class : constant Name_Id := N + 434; + Last_Type_Attribute_Name : constant Name_Id := N + 434; + Last_Entity_Attribute_Name : constant Name_Id := N + 434; + Last_Attribute_Name : constant Name_Id := N + 434; -- Names of recognized locking policy identifiers @@ -723,10 +724,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 + 434; - Name_Ceiling_Locking : constant Name_Id := N + 434; - Name_Inheritance_Locking : constant Name_Id := N + 435; - Last_Locking_Policy_Name : constant Name_Id := N + 435; + First_Locking_Policy_Name : constant Name_Id := N + 435; + Name_Ceiling_Locking : constant Name_Id := N + 435; + Name_Inheritance_Locking : constant Name_Id := N + 436; + Last_Locking_Policy_Name : constant Name_Id := N + 436; -- Names of recognized queuing policy identifiers. @@ -734,10 +735,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 + 436; - Name_FIFO_Queuing : constant Name_Id := N + 436; - Name_Priority_Queuing : constant Name_Id := N + 437; - Last_Queuing_Policy_Name : constant Name_Id := N + 437; + First_Queuing_Policy_Name : constant Name_Id := N + 437; + Name_FIFO_Queuing : constant Name_Id := N + 437; + Name_Priority_Queuing : constant Name_Id := N + 438; + Last_Queuing_Policy_Name : constant Name_Id := N + 438; -- Names of recognized task dispatching policy identifiers @@ -745,193 +746,193 @@ package Snames is -- name (e.g. F for FIFO_WIthinn_Priorities). If new policy names -- are added, the first character must be distinct. - First_Task_Dispatching_Policy_Name : constant Name_Id := N + 438; - Name_Fifo_Within_Priorities : constant Name_Id := N + 438; - Last_Task_Dispatching_Policy_Name : constant Name_Id := N + 438; + First_Task_Dispatching_Policy_Name : constant Name_Id := N + 439; + Name_Fifo_Within_Priorities : constant Name_Id := N + 439; + Last_Task_Dispatching_Policy_Name : constant Name_Id := N + 439; -- Names of recognized checks for pragma Suppress - First_Check_Name : constant Name_Id := N + 439; - Name_Access_Check : constant Name_Id := N + 439; - Name_Accessibility_Check : constant Name_Id := N + 440; - Name_Discriminant_Check : constant Name_Id := N + 441; - Name_Division_Check : constant Name_Id := N + 442; - Name_Elaboration_Check : constant Name_Id := N + 443; - Name_Index_Check : constant Name_Id := N + 444; - Name_Length_Check : constant Name_Id := N + 445; - Name_Overflow_Check : constant Name_Id := N + 446; - Name_Range_Check : constant Name_Id := N + 447; - Name_Storage_Check : constant Name_Id := N + 448; - Name_Tag_Check : constant Name_Id := N + 449; - Name_All_Checks : constant Name_Id := N + 450; - Last_Check_Name : constant Name_Id := N + 450; + First_Check_Name : constant Name_Id := N + 440; + Name_Access_Check : constant Name_Id := N + 440; + Name_Accessibility_Check : constant Name_Id := N + 441; + Name_Discriminant_Check : constant Name_Id := N + 442; + Name_Division_Check : constant Name_Id := N + 443; + Name_Elaboration_Check : constant Name_Id := N + 444; + Name_Index_Check : constant Name_Id := N + 445; + Name_Length_Check : constant Name_Id := N + 446; + Name_Overflow_Check : constant Name_Id := N + 447; + Name_Range_Check : constant Name_Id := N + 448; + Name_Storage_Check : constant Name_Id := N + 449; + Name_Tag_Check : constant Name_Id := N + 450; + Name_All_Checks : constant Name_Id := N + 451; + Last_Check_Name : constant Name_Id := N + 451; -- Names corresponding to reserved keywords, excluding those already -- declared in the attribute list (Access, Delta, Digits, Range). - Name_Abort : constant Name_Id := N + 451; - Name_Abs : constant Name_Id := N + 452; - Name_Accept : constant Name_Id := N + 453; - Name_And : constant Name_Id := N + 454; - Name_All : constant Name_Id := N + 455; - Name_Array : constant Name_Id := N + 456; - Name_At : constant Name_Id := N + 457; - Name_Begin : constant Name_Id := N + 458; - Name_Body : constant Name_Id := N + 459; - Name_Case : constant Name_Id := N + 460; - Name_Constant : constant Name_Id := N + 461; - Name_Declare : constant Name_Id := N + 462; - Name_Delay : constant Name_Id := N + 463; - Name_Do : constant Name_Id := N + 464; - Name_Else : constant Name_Id := N + 465; - Name_Elsif : constant Name_Id := N + 466; - Name_End : constant Name_Id := N + 467; - Name_Entry : constant Name_Id := N + 468; - Name_Exception : constant Name_Id := N + 469; - Name_Exit : constant Name_Id := N + 470; - Name_For : constant Name_Id := N + 471; - Name_Function : constant Name_Id := N + 472; - Name_Generic : constant Name_Id := N + 473; - Name_Goto : constant Name_Id := N + 474; - Name_If : constant Name_Id := N + 475; - Name_In : constant Name_Id := N + 476; - Name_Is : constant Name_Id := N + 477; - Name_Limited : constant Name_Id := N + 478; - Name_Loop : constant Name_Id := N + 479; - Name_Mod : constant Name_Id := N + 480; - Name_New : constant Name_Id := N + 481; - Name_Not : constant Name_Id := N + 482; - Name_Null : constant Name_Id := N + 483; - Name_Of : constant Name_Id := N + 484; - Name_Or : constant Name_Id := N + 485; - Name_Others : constant Name_Id := N + 486; - Name_Out : constant Name_Id := N + 487; - Name_Package : constant Name_Id := N + 488; - Name_Pragma : constant Name_Id := N + 489; - Name_Private : constant Name_Id := N + 490; - Name_Procedure : constant Name_Id := N + 491; - Name_Raise : constant Name_Id := N + 492; - Name_Record : constant Name_Id := N + 493; - Name_Rem : constant Name_Id := N + 494; - Name_Renames : constant Name_Id := N + 495; - Name_Return : constant Name_Id := N + 496; - Name_Reverse : constant Name_Id := N + 497; - Name_Select : constant Name_Id := N + 498; - Name_Separate : constant Name_Id := N + 499; - Name_Subtype : constant Name_Id := N + 500; - Name_Task : constant Name_Id := N + 501; - Name_Terminate : constant Name_Id := N + 502; - Name_Then : constant Name_Id := N + 503; - Name_Type : constant Name_Id := N + 504; - Name_Use : constant Name_Id := N + 505; - Name_When : constant Name_Id := N + 506; - Name_While : constant Name_Id := N + 507; - Name_With : constant Name_Id := N + 508; - Name_Xor : constant Name_Id := N + 509; + Name_Abort : constant Name_Id := N + 452; + Name_Abs : constant Name_Id := N + 453; + Name_Accept : constant Name_Id := N + 454; + Name_And : constant Name_Id := N + 455; + Name_All : constant Name_Id := N + 456; + Name_Array : constant Name_Id := N + 457; + Name_At : constant Name_Id := N + 458; + Name_Begin : constant Name_Id := N + 459; + Name_Body : constant Name_Id := N + 460; + Name_Case : constant Name_Id := N + 461; + Name_Constant : constant Name_Id := N + 462; + Name_Declare : constant Name_Id := N + 463; + Name_Delay : constant Name_Id := N + 464; + Name_Do : constant Name_Id := N + 465; + Name_Else : constant Name_Id := N + 466; + Name_Elsif : constant Name_Id := N + 467; + Name_End : constant Name_Id := N + 468; + Name_Entry : constant Name_Id := N + 469; + Name_Exception : constant Name_Id := N + 470; + Name_Exit : constant Name_Id := N + 471; + Name_For : constant Name_Id := N + 472; + Name_Function : constant Name_Id := N + 473; + Name_Generic : constant Name_Id := N + 474; + Name_Goto : constant Name_Id := N + 475; + Name_If : constant Name_Id := N + 476; + Name_In : constant Name_Id := N + 477; + Name_Is : constant Name_Id := N + 478; + Name_Limited : constant Name_Id := N + 479; + Name_Loop : constant Name_Id := N + 480; + Name_Mod : constant Name_Id := N + 481; + Name_New : constant Name_Id := N + 482; + Name_Not : constant Name_Id := N + 483; + Name_Null : constant Name_Id := N + 484; + Name_Of : constant Name_Id := N + 485; + Name_Or : constant Name_Id := N + 486; + Name_Others : constant Name_Id := N + 487; + Name_Out : constant Name_Id := N + 488; + Name_Package : constant Name_Id := N + 489; + Name_Pragma : constant Name_Id := N + 490; + Name_Private : constant Name_Id := N + 491; + Name_Procedure : constant Name_Id := N + 492; + Name_Raise : constant Name_Id := N + 493; + Name_Record : constant Name_Id := N + 494; + Name_Rem : constant Name_Id := N + 495; + Name_Renames : constant Name_Id := N + 496; + Name_Return : constant Name_Id := N + 497; + Name_Reverse : constant Name_Id := N + 498; + Name_Select : constant Name_Id := N + 499; + Name_Separate : constant Name_Id := N + 500; + Name_Subtype : constant Name_Id := N + 501; + Name_Task : constant Name_Id := N + 502; + Name_Terminate : constant Name_Id := N + 503; + Name_Then : constant Name_Id := N + 504; + Name_Type : constant Name_Id := N + 505; + Name_Use : constant Name_Id := N + 506; + Name_When : constant Name_Id := N + 507; + Name_While : constant Name_Id := N + 508; + Name_With : constant Name_Id := N + 509; + Name_Xor : constant Name_Id := N + 510; -- 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 + 510; - Name_Divide : constant Name_Id := N + 510; - Name_Enclosing_Entity : constant Name_Id := N + 511; - Name_Exception_Information : constant Name_Id := N + 512; - Name_Exception_Message : constant Name_Id := N + 513; - Name_Exception_Name : constant Name_Id := N + 514; - Name_File : constant Name_Id := N + 515; - Name_Import_Address : constant Name_Id := N + 516; - Name_Import_Largest_Value : constant Name_Id := N + 517; - Name_Import_Value : constant Name_Id := N + 518; - Name_Is_Negative : constant Name_Id := N + 519; - Name_Line : constant Name_Id := N + 520; - Name_Rotate_Left : constant Name_Id := N + 521; - Name_Rotate_Right : constant Name_Id := N + 522; - Name_Shift_Left : constant Name_Id := N + 523; - Name_Shift_Right : constant Name_Id := N + 524; - Name_Shift_Right_Arithmetic : constant Name_Id := N + 525; - Name_Source_Location : constant Name_Id := N + 526; - Name_Unchecked_Conversion : constant Name_Id := N + 527; - Name_Unchecked_Deallocation : constant Name_Id := N + 528; - Name_To_Pointer : constant Name_Id := N + 529; - Last_Intrinsic_Name : constant Name_Id := N + 529; + First_Intrinsic_Name : constant Name_Id := N + 511; + Name_Divide : constant Name_Id := N + 511; + Name_Enclosing_Entity : constant Name_Id := N + 512; + Name_Exception_Information : constant Name_Id := N + 513; + Name_Exception_Message : constant Name_Id := N + 514; + Name_Exception_Name : constant Name_Id := N + 515; + Name_File : constant Name_Id := N + 516; + Name_Import_Address : constant Name_Id := N + 517; + Name_Import_Largest_Value : constant Name_Id := N + 518; + Name_Import_Value : constant Name_Id := N + 519; + Name_Is_Negative : constant Name_Id := N + 520; + Name_Line : constant Name_Id := N + 521; + Name_Rotate_Left : constant Name_Id := N + 522; + Name_Rotate_Right : constant Name_Id := N + 523; + Name_Shift_Left : constant Name_Id := N + 524; + Name_Shift_Right : constant Name_Id := N + 525; + Name_Shift_Right_Arithmetic : constant Name_Id := N + 526; + Name_Source_Location : constant Name_Id := N + 527; + Name_Unchecked_Conversion : constant Name_Id := N + 528; + Name_Unchecked_Deallocation : constant Name_Id := N + 529; + Name_To_Pointer : constant Name_Id := N + 530; + Last_Intrinsic_Name : constant Name_Id := N + 530; -- Reserved words used only in Ada 95 - First_95_Reserved_Word : constant Name_Id := N + 530; - Name_Abstract : constant Name_Id := N + 530; - Name_Aliased : constant Name_Id := N + 531; - Name_Protected : constant Name_Id := N + 532; - Name_Until : constant Name_Id := N + 533; - Name_Requeue : constant Name_Id := N + 534; - Name_Tagged : constant Name_Id := N + 535; - Last_95_Reserved_Word : constant Name_Id := N + 535; + First_95_Reserved_Word : constant Name_Id := N + 531; + Name_Abstract : constant Name_Id := N + 531; + Name_Aliased : constant Name_Id := N + 532; + Name_Protected : constant Name_Id := N + 533; + Name_Until : constant Name_Id := N + 534; + Name_Requeue : constant Name_Id := N + 535; + Name_Tagged : constant Name_Id := N + 536; + Last_95_Reserved_Word : constant Name_Id := N + 536; 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 + 536; + Name_Raise_Exception : constant Name_Id := N + 537; -- Additional reserved words in GNAT Project Files -- Note that Name_External is already previously declared - Name_Binder : constant Name_Id := N + 537; - Name_Body_Suffix : constant Name_Id := N + 538; - Name_Builder : constant Name_Id := N + 539; - Name_Compiler : constant Name_Id := N + 540; - Name_Cross_Reference : constant Name_Id := N + 541; - Name_Default_Switches : constant Name_Id := N + 542; - Name_Exec_Dir : constant Name_Id := N + 543; - Name_Executable : constant Name_Id := N + 544; - Name_Executable_Suffix : constant Name_Id := N + 545; - Name_Extends : constant Name_Id := N + 546; - Name_Finder : constant Name_Id := N + 547; - Name_Global_Configuration_Pragmas : constant Name_Id := N + 548; - Name_Gnatls : constant Name_Id := N + 549; - Name_Gnatstub : constant Name_Id := N + 550; - Name_Implementation : constant Name_Id := N + 551; - Name_Implementation_Exceptions : constant Name_Id := N + 552; - Name_Implementation_Suffix : constant Name_Id := N + 553; - Name_Languages : constant Name_Id := N + 554; - Name_Library_Dir : constant Name_Id := N + 555; - Name_Library_Auto_Init : constant Name_Id := N + 556; - Name_Library_GCC : constant Name_Id := N + 557; - Name_Library_Interface : constant Name_Id := N + 558; - Name_Library_Kind : constant Name_Id := N + 559; - Name_Library_Name : constant Name_Id := N + 560; - Name_Library_Options : constant Name_Id := N + 561; - Name_Library_Reference_Symbol_File : constant Name_Id := N + 562; - Name_Library_Src_Dir : constant Name_Id := N + 563; - Name_Library_Symbol_File : constant Name_Id := N + 564; - Name_Library_Symbol_Policy : constant Name_Id := N + 565; - Name_Library_Version : constant Name_Id := N + 566; - Name_Linker : constant Name_Id := N + 567; - Name_Local_Configuration_Pragmas : constant Name_Id := N + 568; - Name_Locally_Removed_Files : constant Name_Id := N + 569; - Name_Naming : constant Name_Id := N + 570; - Name_Object_Dir : constant Name_Id := N + 571; - Name_Pretty_Printer : constant Name_Id := N + 572; - Name_Project : constant Name_Id := N + 573; - Name_Separate_Suffix : constant Name_Id := N + 574; - Name_Source_Dirs : constant Name_Id := N + 575; - Name_Source_Files : constant Name_Id := N + 576; - Name_Source_List_File : constant Name_Id := N + 577; - Name_Spec : constant Name_Id := N + 578; - Name_Spec_Suffix : constant Name_Id := N + 579; - Name_Specification : constant Name_Id := N + 580; - Name_Specification_Exceptions : constant Name_Id := N + 581; - Name_Specification_Suffix : constant Name_Id := N + 582; - Name_Switches : constant Name_Id := N + 583; + Name_Binder : constant Name_Id := N + 538; + Name_Body_Suffix : constant Name_Id := N + 539; + Name_Builder : constant Name_Id := N + 540; + Name_Compiler : constant Name_Id := N + 541; + Name_Cross_Reference : constant Name_Id := N + 542; + Name_Default_Switches : constant Name_Id := N + 543; + Name_Exec_Dir : constant Name_Id := N + 544; + Name_Executable : constant Name_Id := N + 545; + Name_Executable_Suffix : constant Name_Id := N + 546; + Name_Extends : constant Name_Id := N + 547; + Name_Finder : constant Name_Id := N + 548; + Name_Global_Configuration_Pragmas : constant Name_Id := N + 549; + Name_Gnatls : constant Name_Id := N + 550; + Name_Gnatstub : constant Name_Id := N + 551; + Name_Implementation : constant Name_Id := N + 552; + Name_Implementation_Exceptions : constant Name_Id := N + 553; + Name_Implementation_Suffix : constant Name_Id := N + 554; + Name_Languages : constant Name_Id := N + 555; + Name_Library_Dir : constant Name_Id := N + 556; + Name_Library_Auto_Init : constant Name_Id := N + 557; + Name_Library_GCC : constant Name_Id := N + 558; + Name_Library_Interface : constant Name_Id := N + 559; + Name_Library_Kind : constant Name_Id := N + 560; + Name_Library_Name : constant Name_Id := N + 561; + Name_Library_Options : constant Name_Id := N + 562; + Name_Library_Reference_Symbol_File : constant Name_Id := N + 563; + Name_Library_Src_Dir : constant Name_Id := N + 564; + Name_Library_Symbol_File : constant Name_Id := N + 565; + Name_Library_Symbol_Policy : constant Name_Id := N + 566; + Name_Library_Version : constant Name_Id := N + 567; + Name_Linker : constant Name_Id := N + 568; + Name_Local_Configuration_Pragmas : constant Name_Id := N + 569; + Name_Locally_Removed_Files : constant Name_Id := N + 570; + Name_Naming : constant Name_Id := N + 571; + Name_Object_Dir : constant Name_Id := N + 572; + Name_Pretty_Printer : constant Name_Id := N + 573; + Name_Project : constant Name_Id := N + 574; + Name_Separate_Suffix : constant Name_Id := N + 575; + Name_Source_Dirs : constant Name_Id := N + 576; + Name_Source_Files : constant Name_Id := N + 577; + Name_Source_List_File : constant Name_Id := N + 578; + Name_Spec : constant Name_Id := N + 579; + Name_Spec_Suffix : constant Name_Id := N + 580; + Name_Specification : constant Name_Id := N + 581; + Name_Specification_Exceptions : constant Name_Id := N + 582; + Name_Specification_Suffix : constant Name_Id := N + 583; + Name_Switches : constant Name_Id := N + 584; -- Other miscellaneous names used in front end - Name_Unaligned_Valid : constant Name_Id := N + 584; + Name_Unaligned_Valid : constant Name_Id := N + 585; -- Mark last defined name for consistency check in Snames body - Last_Predefined_Name : constant Name_Id := N + 584; + Last_Predefined_Name : constant Name_Id := N + 585; subtype Any_Operator_Name is Name_Id range First_Operator_Name .. Last_Operator_Name; |