From 57abdadd18b3addfc32fb32086862db3f8fdd7b1 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 22 May 2015 12:54:59 +0000 Subject: [PATCH] einfo.ads (Has_Volatile_Full_Access): Rename into... 2015-05-22 Eric Botcazou * einfo.ads (Has_Volatile_Full_Access): Rename into... (Is_Volatile_Full_Access): ...this. (Set_Has_Volatile_Full_Access): Rename into... (Set_Is_Volatile_Full_Access): ...this. * einfo.adb (Has_Volatile_Full_Access): Rename into... (Is_Volatile_Full_Access): ...this. (Set_Has_Volatile_Full_Access): Rename into... (Set_Is_Volatile_Full_Access): ...this. (Is_Atomic_Or_VFA): Adjust to above renaming. * errout.adb (Special_Msg_Delete): Likewise. * exp_pakd.adb (Install_PAT): Likewise. * freeze.adb (Freeze_Array_Type): Likewise. * sem_ch8.adb (Analyze_Object_Renaming): Likewise. * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise. (Inherit_Aspects_At_Freeze_Point): Likewise. * sem_prag.adb (Set_Atomic_VFA): Likewise. (Process_Atomic_Independent_Shared_Volatile): Likewise. * sem_util.adb (Is_Atomic_Or_VFA_Object): Likewise. From-SVN: r223561 --- gcc/ada/ChangeLog | 21 +++++++++++++++++++++ gcc/ada/einfo.adb | 26 +++++++++++++------------- gcc/ada/einfo.ads | 28 ++++++++++++++-------------- gcc/ada/errout.adb | 2 +- gcc/ada/exp_pakd.adb | 10 +++++----- gcc/ada/freeze.adb | 2 +- gcc/ada/sem_ch13.adb | 14 +++++++------- gcc/ada/sem_ch8.adb | 12 ++++++------ gcc/ada/sem_prag.adb | 10 +++++----- gcc/ada/sem_util.adb | 4 ++-- 10 files changed, 75 insertions(+), 54 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 569402443fc..e1a0db0dd32 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,24 @@ +2015-05-22 Eric Botcazou + + * einfo.ads (Has_Volatile_Full_Access): Rename into... + (Is_Volatile_Full_Access): ...this. + (Set_Has_Volatile_Full_Access): Rename into... + (Set_Is_Volatile_Full_Access): ...this. + * einfo.adb (Has_Volatile_Full_Access): Rename into... + (Is_Volatile_Full_Access): ...this. + (Set_Has_Volatile_Full_Access): Rename into... + (Set_Is_Volatile_Full_Access): ...this. + (Is_Atomic_Or_VFA): Adjust to above renaming. + * errout.adb (Special_Msg_Delete): Likewise. + * exp_pakd.adb (Install_PAT): Likewise. + * freeze.adb (Freeze_Array_Type): Likewise. + * sem_ch8.adb (Analyze_Object_Renaming): Likewise. + * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise. + (Inherit_Aspects_At_Freeze_Point): Likewise. + * sem_prag.adb (Set_Atomic_VFA): Likewise. + (Process_Atomic_Independent_Shared_Volatile): Likewise. + * sem_util.adb (Is_Atomic_Or_VFA_Object): Likewise. + 2015-05-22 Robert Dewar * exp_ch5.adb, layout.adb, einfo.adb, einfo.ads, sem_prag.adb, diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index 9de5ce9c259..64426ec3af6 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -592,7 +592,7 @@ package body Einfo is -- Has_Nested_Subprogram Flag282 -- Is_Uplevel_Referenced_Entity Flag283 -- Is_Unimplemented Flag284 - -- Has_Volatile_Full_Access Flag285 + -- Is_Volatile_Full_Access Flag285 -- Needs_Typedef Flag286 -- (unused) Flag253 @@ -1856,11 +1856,6 @@ package body Einfo is return Flag87 (Implementation_Base_Type (Id)); end Has_Volatile_Components; - function Has_Volatile_Full_Access (Id : E) return B is - begin - return Flag285 (Id); - end Has_Volatile_Full_Access; - function Has_Xref_Entry (Id : E) return B is begin return Flag182 (Id); @@ -2528,6 +2523,11 @@ package body Einfo is end if; end Is_Volatile; + function Is_Volatile_Full_Access (Id : E) return B is + begin + return Flag285 (Id); + end Is_Volatile_Full_Access; + function Itype_Printed (Id : E) return B is begin pragma Assert (Is_Itype (Id)); @@ -4758,11 +4758,6 @@ package body Einfo is Set_Flag87 (Id, V); end Set_Has_Volatile_Components; - procedure Set_Has_Volatile_Full_Access (Id : E; V : B := True) is - begin - Set_Flag285 (Id, V); - end Set_Has_Volatile_Full_Access; - procedure Set_Has_Xref_Entry (Id : E; V : B := True) is begin Set_Flag182 (Id, V); @@ -5498,6 +5493,11 @@ package body Einfo is Set_Flag16 (Id, V); end Set_Is_Volatile; + procedure Set_Is_Volatile_Full_Access (Id : E; V : B := True) is + begin + Set_Flag285 (Id, V); + end Set_Is_Volatile_Full_Access; + procedure Set_Itype_Printed (Id : E; V : B := True) is begin pragma Assert (Is_Itype (Id)); @@ -7335,7 +7335,7 @@ package body Einfo is function Is_Atomic_Or_VFA (Id : E) return B is begin - return Is_Atomic (Id) or else Has_Volatile_Full_Access (Id); + return Is_Atomic (Id) or else Is_Volatile_Full_Access (Id); end Is_Atomic_Or_VFA; ------------------ @@ -8750,7 +8750,6 @@ package body Einfo is W ("Has_Uplevel_Reference", Flag215 (Id)); W ("Has_Visible_Refinement", Flag263 (Id)); W ("Has_Volatile_Components", Flag87 (Id)); - W ("Has_Volatile_Full_Access", Flag285 (Id)); W ("Has_Xref_Entry", Flag182 (Id)); W ("In_Package_Body", Flag48 (Id)); W ("In_Private_Part", Flag45 (Id)); @@ -8865,6 +8864,7 @@ package body Einfo is W ("Is_Visible_Formal", Flag206 (Id)); W ("Is_Visible_Lib_Unit", Flag116 (Id)); W ("Is_Volatile", Flag16 (Id)); + W ("Is_Volatile_Full_Access", Flag285 (Id)); W ("Itype_Printed", Flag202 (Id)); W ("Kill_Elaboration_Checks", Flag32 (Id)); W ("Kill_Range_Checks", Flag33 (Id)); diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index 38a6c16cad8..d5a10c28260 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -2047,12 +2047,6 @@ package Einfo is -- type the pragma will be chained to the rep item chain of the first -- subtype in the usual manner. --- Has_Volatile_Full_Access (Flag285) --- Defined in all type entities, and also in constants, components and --- variables. Set if a pragma Volatile_Full_Access applies to the entity. --- In the case of private and incomplete types, this flag is set in --- both the partial view and the full view. - -- Has_Xref_Entry (Flag182) -- Defined in all entities. Set if an entity has an entry in the Xref -- information generated in ali files. This is true for all source @@ -3192,6 +3186,12 @@ package Einfo is -- optimizations on volatile objects should test Treat_As_Volatile -- rather than testing this flag. +-- Is_Volatile_Full_Access (Flag285) +-- Defined in all type entities, and also in constants, components and +-- variables. Set if a pragma Volatile_Full_Access applies to the entity. +-- In the case of private and incomplete types, this flag is set in +-- both the partial view and the full view. + -- Is_Wrapper_Package (synthesized) -- Defined in package entities. Indicates that the package has been -- created as a wrapper for a subprogram instantiation. @@ -5444,7 +5444,6 @@ package Einfo is -- Has_Task (Flag30) (base type only) -- Has_Unchecked_Union (Flag123) (base type only) -- Has_Volatile_Components (Flag87) (base type only) - -- Has_Volatile_Full_Access (Flag285) -- In_Use (Flag8) -- Is_Abstract_Type (Flag146) -- Is_Asynchronous (Flag81) @@ -5462,6 +5461,7 @@ package Einfo is -- Is_RACW_Stub_Type (Flag244) -- Is_Unsigned_Type (Flag144) -- Is_Volatile (Flag16) + -- Is_Volatile_Full_Access (Flag285) -- Itype_Printed (Flag202) (itypes only) -- Known_To_Have_Preelab_Init (Flag207) -- May_Inherit_Delayed_Rep_Aspects (Flag262) @@ -5630,12 +5630,12 @@ package Einfo is -- Related_Type (Node27) -- Has_Biased_Representation (Flag139) -- Has_Per_Object_Constraint (Flag154) - -- Has_Volatile_Full_Access (Flag285) -- Is_Atomic (Flag85) -- Is_Independent (Flag268) -- Is_Return_Object (Flag209) -- Is_Tag (Flag78) -- Is_Volatile (Flag16) + -- Is_Volatile_Full_Access (Flag285) -- Treat_As_Volatile (Flag41) -- Is_Atomic_Or_VFA (synth) -- Next_Component (synth) @@ -5671,7 +5671,6 @@ package Einfo is -- Has_Size_Clause (Flag29) -- Has_Thunks (Flag228) (constants only) -- Has_Volatile_Components (Flag87) - -- Has_Volatile_Full_Access (Flag285) -- Is_Atomic (Flag85) -- Is_Eliminated (Flag124) -- Is_Independent (Flag268) @@ -5680,6 +5679,7 @@ package Einfo is -- Is_True_Constant (Flag163) -- Is_Uplevel_Referenced_Entity (Flag283) -- Is_Volatile (Flag16) + -- Is_Volatile_Full_Access (Flag285) -- Optimize_Alignment_Space (Flag241) (constants only) -- Optimize_Alignment_Time (Flag242) (constants only) -- Stores_Attribute_Old_Prefix (Flag270) (constants only) @@ -6406,7 +6406,6 @@ package Einfo is -- Has_Initial_Value (Flag219) -- Has_Size_Clause (Flag29) -- Has_Volatile_Components (Flag87) - -- Has_Volatile_Full_Access (Flag285) -- Is_Atomic (Flag85) -- Is_Eliminated (Flag124) -- Is_Independent (Flag268) @@ -6417,6 +6416,7 @@ package Einfo is -- Is_True_Constant (Flag163) -- Is_Uplevel_Referenced_Entity (Flag283) -- Is_Volatile (Flag16) + -- Is_Volatile_Full_Access (Flag285) -- OK_To_Rename (Flag247) -- Optimize_Alignment_Space (Flag241) -- Optimize_Alignment_Time (Flag242) @@ -6859,7 +6859,6 @@ package Einfo is function Has_Uplevel_Reference (Id : E) return B; function Has_Visible_Refinement (Id : E) return B; function Has_Volatile_Components (Id : E) return B; - function Has_Volatile_Full_Access (Id : E) return B; function Has_Xref_Entry (Id : E) return B; function Hiding_Loop_Variable (Id : E) return E; function Homonym (Id : E) return E; @@ -6978,6 +6977,7 @@ package Einfo is function Is_Visible_Formal (Id : E) return B; function Is_Visible_Lib_Unit (Id : E) return B; function Is_Volatile (Id : E) return B; + function Is_Volatile_Full_Access (Id : E) return B; function Itype_Printed (Id : E) return B; function Kill_Elaboration_Checks (Id : E) return B; function Kill_Range_Checks (Id : E) return B; @@ -7513,7 +7513,6 @@ package Einfo is procedure Set_Has_Uplevel_Reference (Id : E; V : B := True); procedure Set_Has_Visible_Refinement (Id : E; V : B := True); procedure Set_Has_Volatile_Components (Id : E; V : B := True); - procedure Set_Has_Volatile_Full_Access (Id : E; V : B := True); procedure Set_Has_Xref_Entry (Id : E; V : B := True); procedure Set_Hiding_Loop_Variable (Id : E; V : E); procedure Set_Homonym (Id : E; V : E); @@ -7637,6 +7636,7 @@ package Einfo is procedure Set_Is_Visible_Formal (Id : E; V : B := True); procedure Set_Is_Visible_Lib_Unit (Id : E; V : B := True); procedure Set_Is_Volatile (Id : E; V : B := True); + procedure Set_Is_Volatile_Full_Access (Id : E; V : B := True); procedure Set_Itype_Printed (Id : E; V : B := True); procedure Set_Kill_Elaboration_Checks (Id : E; V : B := True); procedure Set_Kill_Range_Checks (Id : E; V : B := True); @@ -8287,7 +8287,6 @@ package Einfo is pragma Inline (Has_Uplevel_Reference); pragma Inline (Has_Visible_Refinement); pragma Inline (Has_Volatile_Components); - pragma Inline (Has_Volatile_Full_Access); pragma Inline (Has_Xref_Entry); pragma Inline (Hiding_Loop_Variable); pragma Inline (Homonym); @@ -8450,6 +8449,7 @@ package Einfo is pragma Inline (Is_Valued_Procedure); pragma Inline (Is_Visible_Formal); pragma Inline (Is_Visible_Lib_Unit); + pragma Inline (Is_Volatile_Full_Access); pragma Inline (Itype_Printed); pragma Inline (Kill_Elaboration_Checks); pragma Inline (Kill_Range_Checks); @@ -8786,7 +8786,6 @@ package Einfo is pragma Inline (Set_Has_Unknown_Discriminants); pragma Inline (Set_Has_Visible_Refinement); pragma Inline (Set_Has_Volatile_Components); - pragma Inline (Set_Has_Volatile_Full_Access); pragma Inline (Set_Has_Xref_Entry); pragma Inline (Set_Hiding_Loop_Variable); pragma Inline (Set_Homonym); @@ -8909,6 +8908,7 @@ package Einfo is pragma Inline (Set_Is_Visible_Formal); pragma Inline (Set_Is_Visible_Lib_Unit); pragma Inline (Set_Is_Volatile); + pragma Inline (Set_Is_Volatile_Full_Access); pragma Inline (Set_Itype_Printed); pragma Inline (Set_Kill_Elaboration_Checks); pragma Inline (Set_Kill_Range_Checks); diff --git a/gcc/ada/errout.adb b/gcc/ada/errout.adb index 9ad887c0130..7c2a097119f 100644 --- a/gcc/ada/errout.adb +++ b/gcc/ada/errout.adb @@ -3163,7 +3163,7 @@ package body Errout is elsif Msg = "volatile full access to & cannot be guaranteed" then if Is_Type (E) - and then Has_Volatile_Full_Access (E) + and then Is_Volatile_Full_Access (E) and then No (Get_Rep_Pragma (E, Name_Volatile_Full_Access)) then return True; diff --git a/gcc/ada/exp_pakd.adb b/gcc/ada/exp_pakd.adb index 1e899ee3acc..d4968a325a0 100644 --- a/gcc/ada/exp_pakd.adb +++ b/gcc/ada/exp_pakd.adb @@ -537,11 +537,11 @@ package body Exp_Pakd is -- Propagate representation aspects - Set_Is_Atomic (PAT, Is_Atomic (Typ)); - Set_Is_Independent (PAT, Is_Independent (Typ)); - Set_Has_Volatile_Full_Access (PAT, Has_Volatile_Full_Access (Typ)); - Set_Is_Volatile (PAT, Is_Volatile (Typ)); - Set_Treat_As_Volatile (PAT, Treat_As_Volatile (Typ)); + Set_Is_Atomic (PAT, Is_Atomic (Typ)); + Set_Is_Independent (PAT, Is_Independent (Typ)); + Set_Is_Volatile (PAT, Is_Volatile (Typ)); + Set_Is_Volatile_Full_Access (PAT, Is_Volatile_Full_Access (Typ)); + Set_Treat_As_Volatile (PAT, Treat_As_Volatile (Typ)); -- For a non-bit-packed array, propagate reverse storage order -- flag from original base type to packed array base type. diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index ec37b4f0b8a..586289dab7d 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -2503,7 +2503,7 @@ package body Freeze is then Complain_CS ("atomic"); - elsif Has_Volatile_Full_Access (Ctyp) then + elsif Is_Volatile_Full_Access (Ctyp) then Complain_CS ("volatile full access"); end if; end Alias_Atomic_Check; diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 1afdd4d6992..f9ec0ae1137 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -968,8 +968,8 @@ package body Sem_Ch13 is -- Volatile_Full_Access when Aspect_Volatile_Full_Access => - if Has_Volatile_Full_Access (P) then - Set_Has_Volatile_Full_Access (E); + if Is_Volatile_Full_Access (P) then + Set_Is_Volatile_Full_Access (E); end if; -- Volatile_Components @@ -1065,7 +1065,7 @@ package body Sem_Ch13 is end if; when Aspect_Volatile_Full_Access => - if not Has_Volatile_Full_Access (Par) then + if not Is_Volatile_Full_Access (Par) then return; end if; @@ -11090,8 +11090,8 @@ package body Sem_Ch13 is (Get_Rep_Item (Typ, Name_Atomic, Name_Shared)) then Set_Is_Atomic (Typ); - Set_Treat_As_Volatile (Typ); Set_Is_Volatile (Typ); + Set_Treat_As_Volatile (Typ); end if; -- Convention @@ -11171,8 +11171,8 @@ package body Sem_Ch13 is and then Is_Pragma_Or_Corr_Pragma_Present_In_Rep_Item (Get_Rep_Item (Typ, Name_Volatile)) then - Set_Treat_As_Volatile (Typ); Set_Is_Volatile (Typ); + Set_Treat_As_Volatile (Typ); end if; -- Volatile_Full_Access @@ -11182,9 +11182,9 @@ package body Sem_Ch13 is and then Is_Pragma_Or_Corr_Pragma_Present_In_Rep_Item (Get_Rep_Item (Typ, Name_Volatile_Full_Access)) then - Set_Has_Volatile_Full_Access (Typ); - Set_Treat_As_Volatile (Typ); + Set_Is_Volatile_Full_Access (Typ); Set_Is_Volatile (Typ); + Set_Treat_As_Volatile (Typ); end if; -- Inheritance for derived types only diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index 20ec73aeb80..6772328ff96 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -919,9 +919,9 @@ package body Sem_Ch8 is P : constant Node_Id := Prefix (Nam); begin if Is_Entity_Name (P) then - if Has_Volatile_Full_Access (Entity (P)) + if Is_Volatile_Full_Access (Entity (P)) or else - Has_Volatile_Full_Access (Etype (P)) + Is_Volatile_Full_Access (Etype (P)) then Error_Msg_N ("cannot rename component of Volatile_Full_Access " @@ -1366,10 +1366,10 @@ package body Sem_Ch8 is -- Also copy settings of Atomic/Independent/Volatile_Full_Access if Is_Entity_Name (Nam) then - Set_Is_Atomic (Id, Is_Atomic (Entity (Nam))); - Set_Is_Independent (Id, Is_Independent (Entity (Nam))); - Set_Has_Volatile_Full_Access (Id, - Has_Volatile_Full_Access (Entity (Nam))); + Set_Is_Atomic (Id, Is_Atomic (Entity (Nam))); + Set_Is_Independent (Id, Is_Independent (Entity (Nam))); + Set_Is_Volatile_Full_Access (Id, + Is_Volatile_Full_Access (Entity (Nam))); end if; -- Treat as volatile if we just set the Volatile flag diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 375d1d99a55..f9526164aee 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -5843,7 +5843,7 @@ package body Sem_Prag is Utyp : Entity_Id; procedure Set_Atomic_VFA (E : Entity_Id); - -- Set given type as Is_Atomic or Has_Volatile_Full_Access. Also, if + -- Set given type as Is_Atomic or Is_Volatile_Full_Access. Also, if -- no explicit alignment was given, set alignment to unknown, since -- back end knows what the alignment requirements are for atomic and -- full access arrays. Note: this is necessary for derived types. @@ -5855,7 +5855,7 @@ package body Sem_Prag is procedure Set_Atomic_VFA (E : Entity_Id) is begin if Prag_Id = Pragma_Volatile_Full_Access then - Set_Has_Volatile_Full_Access (E); + Set_Is_Volatile_Full_Access (E); else Set_Is_Atomic (E); end if; @@ -5889,7 +5889,7 @@ package body Sem_Prag is -- Check Atomic and VFA used together if (Is_Atomic (E) and then Prag_Id = Pragma_Volatile_Full_Access) - or else (Has_Volatile_Full_Access (E) + or else (Is_Volatile_Full_Access (E) and then (Prag_Id = Pragma_Atomic or else Prag_Id = Pragma_Shared)) @@ -5999,7 +5999,7 @@ package body Sem_Prag is Prag_Id = Pragma_Volatile_Full_Access then if Prag_Id = Pragma_Volatile_Full_Access then - Set_Has_Volatile_Full_Access (E); + Set_Is_Volatile_Full_Access (E); else Set_Is_Atomic (E); end if; @@ -6048,7 +6048,7 @@ package body Sem_Prag is Get_Source_File_Index (Sloc (Utyp)) then if Prag_Id = Pragma_Volatile_Full_Access then - Set_Has_Volatile_Full_Access (Utyp); + Set_Is_Volatile_Full_Access (Utyp); else Set_Is_Atomic (Utyp); end if; diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 13882676443..8b9dfca717e 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -10285,9 +10285,9 @@ package body Sem_Util is return Is_Atomic_Object (N) or else (Is_Object_Reference (N) and then Is_Entity_Name (N) - and then (Has_Volatile_Full_Access (Entity (N)) + and then (Is_Volatile_Full_Access (Entity (N)) or else - Has_Volatile_Full_Access (Etype (Entity (N))))); + Is_Volatile_Full_Access (Etype (Entity (N))))); end Is_Atomic_Or_VFA_Object; ------------------------- -- 2.30.2