diff options
Diffstat (limited to 'gcc/ada/aspects.ads')
-rw-r--r-- | gcc/ada/aspects.ads | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ada/aspects.ads b/gcc/ada/aspects.ads index 70ea120..d8861bf 100644 --- a/gcc/ada/aspects.ads +++ b/gcc/ada/aspects.ads @@ -81,6 +81,7 @@ package Aspects is Aspect_Bit_Order, Aspect_Component_Size, Aspect_Constant_Indexing, + Aspect_Constructor, -- GNAT Aspect_Contract_Cases, -- GNAT Aspect_Convention, Aspect_CPU, @@ -106,6 +107,7 @@ package Aspects is Aspect_GNAT_Annotate, -- GNAT Aspect_Implicit_Dereference, Aspect_Initial_Condition, -- GNAT + Aspect_Initialize, -- GNAT Aspect_Initializes, -- GNAT Aspect_Input, Aspect_Integer_Literal, @@ -125,11 +127,13 @@ package Aspects is Aspect_Part_Of, -- GNAT Aspect_Post, Aspect_Postcondition, + Aspect_Potentially_Invalid, -- GNAT Aspect_Pre, Aspect_Precondition, Aspect_Predicate, -- GNAT Aspect_Predicate_Failure, Aspect_Priority, + Aspect_Program_Exit, Aspect_Put_Image, Aspect_Read, Aspect_Real_Literal, @@ -324,6 +328,7 @@ package Aspects is Aspect_Obsolescent => True, Aspect_Part_Of => True, Aspect_Persistent_BSS => True, + Aspect_Potentially_Invalid => True, Aspect_Predicate => True, Aspect_Pure_Function => True, Aspect_Refined_Depends => True, @@ -404,8 +409,11 @@ package Aspects is subtype Boolean_Aspects is Aspect_Id range Aspect_Always_Terminates .. Aspect_Id'Last; - subtype Pre_Post_Aspects is - Aspect_Id range Aspect_Post .. Aspect_Precondition; + subtype Pre_Post_Aspects is Aspect_Id + with Static_Predicate => Pre_Post_Aspects in Aspect_Post + | Aspect_Postcondition + | Aspect_Pre + | Aspect_Precondition; -- The following type is used for indicating allowed expression forms @@ -428,6 +436,7 @@ package Aspects is Aspect_Bit_Order => Expression, Aspect_Component_Size => Expression, Aspect_Constant_Indexing => Name, + Aspect_Constructor => Name, Aspect_Contract_Cases => Expression, Aspect_Convention => Name, Aspect_CPU => Expression, @@ -453,6 +462,7 @@ package Aspects is Aspect_GNAT_Annotate => Expression, Aspect_Implicit_Dereference => Name, Aspect_Initial_Condition => Expression, + Aspect_Initialize => Expression, Aspect_Initializes => Expression, Aspect_Input => Name, Aspect_Integer_Literal => Name, @@ -472,11 +482,13 @@ package Aspects is Aspect_Part_Of => Expression, Aspect_Post => Expression, Aspect_Postcondition => Expression, + Aspect_Potentially_Invalid => Optional_Expression, Aspect_Pre => Expression, Aspect_Precondition => Expression, Aspect_Predicate => Expression, Aspect_Predicate_Failure => Expression, Aspect_Priority => Expression, + Aspect_Program_Exit => Optional_Expression, Aspect_Put_Image => Name, Aspect_Read => Name, Aspect_Real_Literal => Name, @@ -529,6 +541,7 @@ package Aspects is Aspect_Component_Size => True, Aspect_Constant_Indexing => False, Aspect_Contract_Cases => False, + Aspect_Constructor => False, Aspect_Convention => True, Aspect_CPU => False, Aspect_Default_Component_Value => True, @@ -556,6 +569,7 @@ package Aspects is Aspect_GNAT_Annotate => False, Aspect_Implicit_Dereference => False, Aspect_Initial_Condition => False, + Aspect_Initialize => False, Aspect_Initializes => False, Aspect_Input => False, Aspect_Integer_Literal => False, @@ -575,11 +589,13 @@ package Aspects is Aspect_Part_Of => False, Aspect_Post => False, Aspect_Postcondition => False, + Aspect_Potentially_Invalid => False, Aspect_Pre => False, Aspect_Precondition => False, Aspect_Predicate => False, Aspect_Predicate_Failure => False, Aspect_Priority => False, + Aspect_Program_Exit => False, Aspect_Put_Image => False, Aspect_Read => False, Aspect_Real_Literal => False, @@ -698,6 +714,7 @@ package Aspects is Aspect_Constant_After_Elaboration => Name_Constant_After_Elaboration, Aspect_Constant_Indexing => Name_Constant_Indexing, Aspect_Contract_Cases => Name_Contract_Cases, + Aspect_Constructor => Name_Constructor, Aspect_Convention => Name_Convention, Aspect_CPU => Name_CPU, Aspect_CUDA_Device => Name_CUDA_Device, @@ -742,6 +759,7 @@ package Aspects is Aspect_Inline => Name_Inline, Aspect_Inline_Always => Name_Inline_Always, Aspect_Initial_Condition => Name_Initial_Condition, + Aspect_Initialize => Name_Initialize, Aspect_Initializes => Name_Initializes, Aspect_Input => Name_Input, Aspect_Integer_Literal => Name_Integer_Literal, @@ -773,6 +791,7 @@ package Aspects is Aspect_Persistent_BSS => Name_Persistent_BSS, Aspect_Post => Name_Post, Aspect_Postcondition => Name_Postcondition, + Aspect_Potentially_Invalid => Name_Potentially_Invalid, Aspect_Pre => Name_Pre, Aspect_Precondition => Name_Precondition, Aspect_Predicate => Name_Predicate, @@ -780,6 +799,7 @@ package Aspects is Aspect_Preelaborable_Initialization => Name_Preelaborable_Initialization, Aspect_Preelaborate => Name_Preelaborate, Aspect_Priority => Name_Priority, + Aspect_Program_Exit => Name_Program_Exit, Aspect_Pure => Name_Pure, Aspect_Pure_Function => Name_Pure_Function, Aspect_Put_Image => Name_Put_Image, @@ -965,6 +985,7 @@ package Aspects is Aspect_Asynchronous => Always_Delay, Aspect_Attach_Handler => Always_Delay, Aspect_Constant_Indexing => Always_Delay, + Aspect_Constructor => Always_Delay, Aspect_CPU => Always_Delay, Aspect_CUDA_Device => Always_Delay, Aspect_CUDA_Global => Always_Delay, @@ -1009,6 +1030,7 @@ package Aspects is Aspect_Preelaborable_Initialization => Always_Delay, Aspect_Preelaborate => Always_Delay, Aspect_Priority => Always_Delay, + Aspect_Program_Exit => Always_Delay, Aspect_Pure => Always_Delay, Aspect_Pure_Function => Always_Delay, Aspect_Put_Image => Always_Delay, @@ -1070,6 +1092,7 @@ package Aspects is Aspect_Import => Never_Delay, Aspect_Initial_Condition => Never_Delay, Aspect_Local_Restrictions => Never_Delay, + Aspect_Initialize => Never_Delay, Aspect_Initializes => Never_Delay, Aspect_Max_Entry_Queue_Length => Never_Delay, Aspect_Max_Queue_Length => Never_Delay, @@ -1080,6 +1103,7 @@ package Aspects is Aspect_No_Tagged_Streams => Never_Delay, Aspect_Obsolescent => Never_Delay, Aspect_Part_Of => Never_Delay, + Aspect_Potentially_Invalid => Never_Delay, Aspect_Refined_Depends => Never_Delay, Aspect_Refined_Global => Never_Delay, Aspect_Refined_Post => Never_Delay, |