diff options
author | Ed Schonberg <schonberg@adacore.com> | 2018-10-09 15:05:34 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-10-09 15:05:34 +0000 |
commit | 8f0303e751226c85f3556bda0d19091ceef61a6a (patch) | |
tree | 5e730ab18e1216728e70bf5df0e22ce5d514a261 | |
parent | 73efc7ff4c07b08d8c8ab5e5deeb00d5586878e3 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ada/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/exp_ch6.adb | 3 |
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 |