exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call SS_Release for a block...
authorBob Duff <duff@adacore.com>
Fri, 23 Oct 2015 10:41:13 +0000 (10:41 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 23 Oct 2015 10:41:13 +0000 (12:41 +0200)
commitc79f6efda3d3ebae36ecd7beab058684d2790903
tree0ed8b11b3c01df9037e5e1900516917ec38ab9ab
parent10158317660dcb6db1913913ce99073078314b4f
exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call SS_Release for a block statement enclosing the return statement in...

2015-10-23  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call
SS_Release for a block statement enclosing the return statement in the
case where a build-in-place function return is returning
the result on the secondary stack. This is accomplished by
setting the Sec_Stack_Needed_For_Return flag on such blocks.
It was already being set for the function itself, and it was
already set correctly for blocks in the non-build-in-place case
(in Expand_Simple_Function_Return).
(Set_Enclosing_Sec_Stack_Return): New procedure to perform
the Set_Sec_Stack_Needed_For_Return calls. Called in the
build-in-place and non-build-in-place cases.
(Expand_Simple_Function_Return): Call
Set_Enclosing_Sec_Stack_Return instead of performing the loop
in line.

2015-10-23  Bob Duff  <duff@adacore.com>

* scng.adb (Char_Literal_Case): If an apostrophe
follows a reserved word, treat it as a lone apostrophe, rather
than the start of a character literal. This was already done for
"all", but it needs to be done also for (e.g.) "Delta".

From-SVN: r229226
gcc/ada/ChangeLog
gcc/ada/exp_ch6.adb
gcc/ada/scng.adb