summaryrefslogtreecommitdiff
path: root/gcc/ada/einfo.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-02 12:31:12 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-02 12:31:12 +0200
commit273adcdf9fbd8521e9f0d39e8a9f22d0c53b482d (patch)
treec6d75d4be98fa0d41f80672f7a72776b9bf54c64 /gcc/ada/einfo.adb
parent6320f5e18ed03cb41e65e640566d2a9cf1cd5690 (diff)
downloadgcc-273adcdf9fbd8521e9f0d39e8a9f22d0c53b482d.tar.gz
[multiple changes]
2011-08-02 Jerome Guitton <guitton@adacore.com> * a-except-2005.adb (Raise_From_Signal_Handler): Call Debug_Raise_Exception before propagation starts. 2011-08-02 Eric Botcazou <ebotcazou@adacore.com> * exp_ch6.adb (Expand_Call): Guard restriction checks with a call to Restriction_Check_Required. * sem_ch3.adb (Analyze_Object_Declaration): Likewise. * sem_res.adb (Resolve_Call): Likewise. * sem_attr.adb (Check_Stream_Attribute): Likewise. 2011-08-02 Bob Duff <duff@adacore.com> * stylesw.ads: Update comment. * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N. * errout.ads: Remove obsolete comment. 2011-08-02 Javier Miranda <miranda@adacore.com> * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function. (Set_Is_Safe_To_Reevaluate): new procedure. * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no assignment is allowed on safe-to-reevaluate variables. (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the temporary created to remove side effects in expressions that use the secondary stack as safe-to-reevaluate. * exp_util.adb (Side_Effect_Free): Add missing code to handle well variables that are not true constants. From-SVN: r177129
Diffstat (limited to 'gcc/ada/einfo.adb')
-rw-r--r--gcc/ada/einfo.adb14
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index c66b35a5764..eb217d49d59 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -514,9 +514,9 @@ package body Einfo is
-- Is_Underlying_Record_View Flag246
-- OK_To_Rename Flag247
-- Has_Inheritable_Invariants Flag248
+ -- Is_Safe_To_Reevaluate Flag249
-- Has_Predicates Flag250
- -- (unused) Flag249
-- (unused) Flag251
-- (unused) Flag252
-- (unused) Flag253
@@ -2058,6 +2058,11 @@ package body Einfo is
return Flag209 (Id);
end Is_Return_Object;
+ function Is_Safe_To_Reevaluate (Id : E) return B is
+ begin
+ return Flag249 (Id);
+ end Is_Safe_To_Reevaluate;
+
function Is_Shared_Passive (Id : E) return B is
begin
return Flag60 (Id);
@@ -4542,6 +4547,12 @@ package body Einfo is
Set_Flag209 (Id, V);
end Set_Is_Return_Object;
+ procedure Set_Is_Safe_To_Reevaluate (Id : E; V : B := True) is
+ begin
+ pragma Assert (Ekind (Id) = E_Variable);
+ Set_Flag249 (Id, V);
+ end Set_Is_Safe_To_Reevaluate;
+
procedure Set_Is_Shared_Passive (Id : E; V : B := True) is
begin
Set_Flag60 (Id, V);
@@ -7501,6 +7512,7 @@ package body Einfo is
W ("Is_Remote_Types", Flag61 (Id));
W ("Is_Renaming_Of_Object", Flag112 (Id));
W ("Is_Return_Object", Flag209 (Id));
+ W ("Is_Safe_To_Reevaluate", Flag249 (Id));
W ("Is_Shared_Passive", Flag60 (Id));
W ("Is_Statically_Allocated", Flag28 (Id));
W ("Is_Tag", Flag78 (Id));