exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter is aliased and...
authorEd Schonberg <schonber@gnat.com>
Wed, 27 Oct 2004 13:01:55 +0000 (15:01 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 27 Oct 2004 13:01:55 +0000 (15:01 +0200)
commitfaf3cf91ab14510bbe55c1afcd2b378f8d0632ab
tree97532d0450cf7bf431269a4f4a0b9d1c84f351b8
parent5e1c00fac7db1ff2c586a8664dec5745bbf50fa6
exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter is aliased and is a by_reference type...

2004-10-26  Ed Schonberg  <schonberg@gnat.com>
    Eric Botcazou  <ebotcazou@act-europe.fr>

* exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
is aliased and is a by_reference type, do not pass by copy.
(Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
detect whether the call is in the right side of an assignment or
the expression of an object declaration.  Recurse on component
association within aggregates.
Call it in the condition that determines whether the temporary is
necessary for correct stack-checking.

From-SVN: r89651
gcc/ada/exp_ch6.adb