Commit d2ca5779 by Pierre-Marie de Rodat

[multiple changes]

2017-11-16  Steve Baird  <baird@adacore.com>

	* debug.adb: Update another comment to indicate gnat2scil's use of the
	-gnatd.7 switch.

2017-11-16  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in
	the case of nested build-in-place calls.

From-SVN: r254827
parent c82387cc
2017-11-16 Steve Baird <baird@adacore.com>
* debug.adb: Update another comment to indicate gnat2scil's use of the
-gnatd.7 switch.
2017-11-16 Bob Duff <duff@adacore.com>
* exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in
the case of nested build-in-place calls.
2017-11-16 Joel Brobecker <brobecker@adacore.com> 2017-11-16 Joel Brobecker <brobecker@adacore.com>
* doc/gnat_ugn/gnat_utility_programs.rst: Document the switches * doc/gnat_ugn/gnat_utility_programs.rst: Document the switches
......
...@@ -827,6 +827,12 @@ package body Debug is ...@@ -827,6 +827,12 @@ package body Debug is
-- referenced by the generated C code. This debug flag restores the -- referenced by the generated C code. This debug flag restores the
-- output of all the types. -- output of all the types.
-- d.7 Indicates (to gnat2scil) that CodePeer is being invoked as a
-- prover by the SPARK tools and that therefore gnat2scil should
-- avoid SCIL generation strategies which can introduce soundness
-- issues (e.g., assuming that a low bound of an array parameter
-- of an unconstrained subtype belongs to the index subtype).
-- d.9 Enable build-in-place for function calls returning some nonlimited -- d.9 Enable build-in-place for function calls returning some nonlimited
-- types. -- types.
......
...@@ -4354,6 +4354,10 @@ package body Exp_Ch6 is ...@@ -4354,6 +4354,10 @@ package body Exp_Ch6 is
N_Procedure_Call_Statement, N_Procedure_Call_Statement,
N_Selected_Component, N_Selected_Component,
N_Slice) N_Slice)
and then
(Ekind (Current_Scope) /= E_Loop
or else Nkind (Parent (N)) /= N_Function_Call
or else not Is_Build_In_Place_Function_Call (Parent (N)))
then then
Establish_Transient_Scope (Call_Node, Sec_Stack => True); Establish_Transient_Scope (Call_Node, Sec_Stack => True);
end if; end if;
......
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