[Ada] Fix fallout of previous change for bit-packed arrays
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 19 Sep 2019 08:12:52 +0000 (08:12 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 19 Sep 2019 08:12:52 +0000 (08:12 +0000)
commit348c3ae62ec5579323defd9179aa6b870e0b744b
tree7c87e2612448a5939978a961e177de85ccd66310
parente516702202bcdc26181cf9fab120fcb15ca0c15d
[Ada] Fix fallout of previous change for bit-packed arrays

This fixes a regression introduced by the previous change that improved
the handling of explicit by-reference mechanism. For the very specific
case of a component of a bit-packed array, the front-end still needs to
insert a copy around the call because this is where the rewriting into
the sequence of mask-and-shifts is done for the code generator.

2019-09-19  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add
Bit_Packed_Array parameter and documet it. Always insert a copy
if it is set True.
(Expand_Actuals): Adjust the calls to
Add_Simple_Call_By_Copy_Code.

gcc/testsuite/

* gnat.dg/pack26.adb: New testcase.

From-SVN: r275933
gcc/ada/ChangeLog
gcc/ada/exp_ch6.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/pack26.adb [new file with mode: 0644]