Commit 8f0303e7 by Ed Schonberg Committed by Pierre-Marie de Rodat

[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
parent 73efc7ff
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
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment