aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/aspects.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/aspects.ads')
-rwxr-xr-xgcc/ada/aspects.ads43
1 files changed, 41 insertions, 2 deletions
diff --git a/gcc/ada/aspects.ads b/gcc/ada/aspects.ads
index ed391f0..e2e7e6f 100755
--- a/gcc/ada/aspects.ads
+++ b/gcc/ada/aspects.ads
@@ -73,9 +73,24 @@ package Aspects is
Aspect_Warnings,
Aspect_Write,
+ -- The following aspects correspond to library unit pragmas
+
+ Aspect_All_Calls_Remote,
+ Aspect_Compiler_Unit, -- GNAT
+ Aspect_Elaborate_Body,
+ Aspect_Preelaborate,
+ Aspect_Preelaborate_05, -- GNAT
+ Aspect_Pure,
+ Aspect_Pure_05, -- GNAT
+ Aspect_Remote_Call_Interface,
+ Aspect_Remote_Types,
+ Aspect_Shared_Passive,
+ Aspect_Universal_Data, -- GNAT
+
-- Remaining aspects have a static boolean value that turns the aspect
-- on or off. They all correspond to pragmas, and the flag Aspect_Cancel
- -- is set on the pragma if the corresponding aspect is False.
+ -- is set on the pragma if the corresponding aspect is False. These are
+ -- also Boolean aspects as defined below.
Aspect_Ada_2005, -- GNAT
Aspect_Ada_2012, -- GNAT
@@ -109,6 +124,14 @@ package Aspects is
Aspect_Post => True,
others => False);
+ -- The following subtype defines aspects corresponding to library unit
+ -- pragmas, these can only validly appear as aspects for library units,
+ -- and result in a corresponding pragma being inserted immediately after
+ -- the occurrence of the aspect.
+
+ subtype Library_Unit_Aspects is
+ Aspect_Id range Aspect_All_Calls_Remote .. Aspect_Universal_Data;
+
-- The following subtype defines aspects accepting an optional static
-- boolean parameter indicating if the aspect should be active or
-- cancelling. If the parameter is missing the effective value is True,
@@ -119,6 +142,9 @@ package Aspects is
subtype Boolean_Aspects is
Aspect_Id range Aspect_Ada_2005 .. Aspect_Id'Last;
+ subtype Pre_Post_Aspects is
+ Aspect_Id range Aspect_Post .. Aspect_Precondition;
+
-- The following type is used for indicating allowed expression forms
type Aspect_Expression is
@@ -158,6 +184,8 @@ package Aspects is
Aspect_Value_Size => Expression,
Aspect_Warnings => Name,
Aspect_Write => Name,
+
+ Library_Unit_Aspects => Optional,
Boolean_Aspects => Optional);
-----------------------------------------
@@ -176,12 +204,15 @@ package Aspects is
(Name_Ada_2012, Aspect_Ada_2012),
(Name_Address, Aspect_Address),
(Name_Alignment, Aspect_Alignment),
+ (Name_All_Calls_Remote, Aspect_All_Calls_Remote),
(Name_Atomic, Aspect_Atomic),
(Name_Atomic_Components, Aspect_Atomic_Components),
(Name_Bit_Order, Aspect_Bit_Order),
+ (Name_Compiler_Unit, Aspect_Compiler_Unit),
(Name_Component_Size, Aspect_Component_Size),
- (Name_Dynamic_Predicate, Aspect_Dynamic_Predicate),
(Name_Discard_Names, Aspect_Discard_Names),
+ (Name_Dynamic_Predicate, Aspect_Dynamic_Predicate),
+ (Name_Elaborate_Body, Aspect_Elaborate_Body),
(Name_External_Tag, Aspect_External_Tag),
(Name_Favor_Top_Level, Aspect_Favor_Top_Level),
(Name_Inline, Aspect_Inline),
@@ -199,9 +230,16 @@ package Aspects is
(Name_Precondition, Aspect_Precondition),
(Name_Predicate, Aspect_Predicate),
(Name_Preelaborable_Initialization, Aspect_Preelaborable_Initialization),
+ (Name_Preelaborate, Aspect_Preelaborate),
+ (Name_Preelaborate_05, Aspect_Preelaborate_05),
+ (Name_Pure, Aspect_Pure),
+ (Name_Pure_05, Aspect_Pure_05),
(Name_Pure_Function, Aspect_Pure_Function),
(Name_Read, Aspect_Read),
+ (Name_Remote_Call_Interface, Aspect_Remote_Call_Interface),
+ (Name_Remote_Types, Aspect_Remote_Types),
(Name_Shared, Aspect_Shared),
+ (Name_Shared_Passive, Aspect_Shared_Passive),
(Name_Size, Aspect_Size),
(Name_Static_Predicate, Aspect_Static_Predicate),
(Name_Storage_Pool, Aspect_Storage_Pool),
@@ -212,6 +250,7 @@ package Aspects is
(Name_Type_Invariant, Aspect_Type_Invariant),
(Name_Unchecked_Union, Aspect_Unchecked_Union),
(Name_Universal_Aliasing, Aspect_Universal_Aliasing),
+ (Name_Universal_Data, Aspect_Universal_Data),
(Name_Unmodified, Aspect_Unmodified),
(Name_Unreferenced, Aspect_Unreferenced),
(Name_Unreferenced_Objects, Aspect_Unreferenced_Objects),