]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/ada/exp_ch6.adb
2017-10-20 Bob Duff <duff@adacore.com>
authorpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Oct 2017 14:51:32 +0000 (14:51 +0000)
committerpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Oct 2017 14:51:32 +0000 (14:51 +0000)
commitcd1a490063440820427c56db214e4e4ebb72eb1e
treeb2cf43fedb32b08b3914d887a1598dbdd503a018
parent9b8698ff04baf7205264b7e3ca4ff256f5b2ad56
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253940 138bc75d-0d04-0410-961f-82ee72b054a4
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