sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate that an allocator...
commit3a248f7cecb43333923d6b2f89a1acb4e6b3dd6e
authorBob Duff <duff@adacore.com>
Fri, 20 Oct 2017 14:51:32 +0000 (20 14:51 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Fri, 20 Oct 2017 14:51:32 +0000 (20 14:51 +0000)
treeb2cf43fedb32b08b3914d887a1598dbdd503a018
parent2185b58266f1c4b0b14a32ef1585f129ae42d9db
sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate that an allocator came from a b-i-p return statement.

2017-10-20  Bob Duff  <duff@adacore.com>

* sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate
that an allocator came from a b-i-p return statement.
* exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return
object of a nonlimited build-in-place function call.
* exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the
Alloc_For_BIP_Return flag on generated allocators.
* sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail.
If the N_Assignment_Statement has been transformed into something else,
then Should_Transform_BIP_Assignment won't work.
* exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said,
"Remove Adjust if we're building the return object of an extended
return statement in place." Back out that part of the change, because
the Alloc_For_BIP_Return flag is now used for that.

From-SVN: r253940
gcc/ada/ChangeLog
gcc/ada/exp_ch3.adb
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch6.adb
gcc/ada/sem_ch5.adb
gcc/ada/sinfo.adb
gcc/ada/sinfo.ads