[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
This commit is contained in:
parent
c23796791c
commit
06effe875c
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 (" """);
|
||||
Gen_Restrictions_String_1;
|
||||
Set_String (""" &");
|
||||
Write_Statement_Buffer;
|
||||
|
||||
for J in All_Restrictions loop
|
||||
null;
|
||||
end loop;
|
||||
|
||||
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 --
|
||||
----------------------
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
--
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 --
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -335,6 +335,7 @@ package body Snames is
|
|||
"parameter_types#" &
|
||||
"reference#" &
|
||||
"no_requeue#" &
|
||||
"no_task_attributes#" &
|
||||
"restricted#" &
|
||||
"result_mechanism#" &
|
||||
"result_type#" &
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue