aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2018-10-09 15:05:34 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-10-09 15:05:34 +0000
commit8f0303e751226c85f3556bda0d19091ceef61a6a (patch)
tree5e730ab18e1216728e70bf5df0e22ce5d514a261 /gcc/ada
parent73efc7ff4c07b08d8c8ab5e5deeb00d5586878e3 (diff)
downloadgcc-8f0303e751226c85f3556bda0d19091ceef61a6a.zip
gcc-8f0303e751226c85f3556bda0d19091ceef61a6a.tar.gz
gcc-8f0303e751226c85f3556bda0d19091ceef61a6a.tar.bz2
[Ada] Reset Is_True_Constant on entites used as OUT/IN OUT actuals
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch6.adb (Add_Call_By_Copy_Node, Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset Is_True_Constant on entities used as Out or In_Out parameters in calls. From-SVN: r264968
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/exp_ch6.adb3
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index aee5a62..7070293 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,12 @@
2018-10-09 Ed Schonberg <schonberg@adacore.com>
+ * exp_ch6.adb (Add_Call_By_Copy_Node,
+ Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset
+ Is_True_Constant on entities used as Out or In_Out parameters in
+ calls.
+
+2018-10-09 Ed Schonberg <schonberg@adacore.com>
+
* exp_unst.adb (Unnest_Subprogram): Do not load System to obtain
the Address entity unless an activation record is being built.
Removes useless with_clauses for System when nested subprograms
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 96ee696..2988f77 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -1442,6 +1442,7 @@ package body Exp_Ch6 is
Kill_Current_Values (Temp);
Set_Is_Known_Valid (Temp, False);
+ Set_Is_True_Constant (Temp, False);
-- If type conversion, use reverse conversion on exit
@@ -1653,6 +1654,7 @@ package body Exp_Ch6 is
if Ekind (Formal) /= E_In_Parameter then
Lhs := Outcod;
Rhs := New_Occurrence_Of (Temp, Loc);
+ Set_Is_True_Constant (Temp, False);
-- Deal with conversion
@@ -3431,6 +3433,7 @@ package body Exp_Ch6 is
Kill_Current_Values (Ent);
Set_Last_Assignment (Ent, Sav);
Set_Is_Known_Valid (Ent, False);
+ Set_Is_True_Constant (Ent, False);
-- For all other cases, just kill the current values