diff options
-rw-r--r-- | gcc/ada/sem_util.adb | 35 | ||||
-rw-r--r-- | gcc/ada/sem_util.ads | 15 |
2 files changed, 12 insertions, 38 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 30c1a52..dea27dc 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -16727,9 +16727,7 @@ package body Sem_Util is -- Is_Effectively_Volatile -- ----------------------------- - function Is_Effectively_Volatile - (Id : Entity_Id; - Ignore_Protected : Boolean := False) return Boolean is + function Is_Effectively_Volatile (Id : Entity_Id) return Boolean is begin if Is_Type (Id) then @@ -16760,15 +16758,13 @@ package body Sem_Util is -- private type may be missing in case of error. return Present (Anc) - and then Is_Effectively_Volatile - (Component_Type (Anc), Ignore_Protected); + and then Is_Effectively_Volatile (Component_Type (Anc)); end; end if; - -- A protected type is always volatile unless Ignore_Protected is - -- True. + -- A protected type is always volatile - elsif Is_Protected_Type (Id) and then not Ignore_Protected then + elsif Is_Protected_Type (Id) then return True; -- A descendant of Ada.Synchronous_Task_Control.Suspension_Object is @@ -16794,7 +16790,7 @@ package body Sem_Util is and then not (Ekind (Id) = E_Variable and then No_Caching_Enabled (Id))) or else Has_Volatile_Components (Id) - or else Is_Effectively_Volatile (Etype (Id), Ignore_Protected); + or else Is_Effectively_Volatile (Etype (Id)); end if; end Is_Effectively_Volatile; @@ -16803,19 +16799,15 @@ package body Sem_Util is ----------------------------------------- function Is_Effectively_Volatile_For_Reading - (Id : Entity_Id; - Ignore_Protected : Boolean := False) return Boolean + (Id : Entity_Id) return Boolean is begin - -- A concurrent type is effectively volatile for reading, except for a - -- protected type when Ignore_Protected is True. + -- A concurrent type is effectively volatile for reading - if Is_Task_Type (Id) - or else (Is_Protected_Type (Id) and then not Ignore_Protected) - then + if Is_Concurrent_Type (Id) then return True; - elsif Is_Effectively_Volatile (Id, Ignore_Protected) then + elsif Is_Effectively_Volatile (Id) then -- Other volatile types and objects are effectively volatile for -- reading when they have property Async_Writers or Effective_Reads @@ -16845,7 +16837,7 @@ package body Sem_Util is return Present (Anc) and then Is_Effectively_Volatile_For_Reading - (Component_Type (Anc), Ignore_Protected); + (Component_Type (Anc)); end; end if; end if; @@ -16859,9 +16851,6 @@ package body Sem_Util is ------------------------------------ function Is_Effectively_Volatile_Object (N : Node_Id) return Boolean is - function Is_Effectively_Volatile (E : Entity_Id) return Boolean is - (Is_Effectively_Volatile (E, Ignore_Protected => False)); - function Is_Effectively_Volatile_Object_Inst is new Is_Effectively_Volatile_Object_Shared (Is_Effectively_Volatile); begin @@ -16875,10 +16864,6 @@ package body Sem_Util is function Is_Effectively_Volatile_Object_For_Reading (N : Node_Id) return Boolean is - function Is_Effectively_Volatile_For_Reading - (E : Entity_Id) return Boolean - is (Is_Effectively_Volatile_For_Reading (E, Ignore_Protected => False)); - function Is_Effectively_Volatile_Object_For_Reading_Inst is new Is_Effectively_Volatile_Object_Shared (Is_Effectively_Volatile_For_Reading); diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads index 2b9ba5f..dda031f 100644 --- a/gcc/ada/sem_util.ads +++ b/gcc/ada/sem_util.ads @@ -1962,9 +1962,7 @@ package Sem_Util is -- . machine_emax = 2**10 -- . machine_emin = 3 - machine_emax - function Is_Effectively_Volatile - (Id : Entity_Id; - Ignore_Protected : Boolean := False) return Boolean; + function Is_Effectively_Volatile (Id : Entity_Id) return Boolean; -- Determine whether a type or object denoted by entity Id is effectively -- volatile (SPARK RM 7.1.2). To qualify as such, the entity must be either -- * Volatile without No_Caching @@ -1972,14 +1970,9 @@ package Sem_Util is -- * An array type whose component type is effectively volatile -- * A protected type -- * Descendant of type Ada.Synchronous_Task_Control.Suspension_Object - -- - -- If Ignore_Protected is True, then a protected object/type is treated - -- like a non-protected record object/type for computing the result of - -- this query. function Is_Effectively_Volatile_For_Reading - (Id : Entity_Id; - Ignore_Protected : Boolean := False) return Boolean; + (Id : Entity_Id) return Boolean; -- Determine whether a type or object denoted by entity Id is effectively -- volatile for reading (SPARK RM 7.1.2). To qualify as such, the entity -- must be either @@ -1991,10 +1984,6 @@ package Sem_Util is -- reading -- * A protected type -- * Descendant of type Ada.Synchronous_Task_Control.Suspension_Object - -- - -- If Ignore_Protected is True, then a protected object/type is treated - -- like a non-protected record object/type for computing the result of - -- this query. function Is_Effectively_Volatile_Object (N : Node_Id) return Boolean; |