diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-07-05 07:03:30 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-07-05 07:03:30 +0000 |
commit | d21328a0d42f1b6a92f777acf4972e3c1c5d330c (patch) | |
tree | 0d0aca6b6fdb14c4988cbb20ec2fded21985c460 /gcc/tree-outof-ssa.c | |
parent | 6d0289b1ec9e1f2b963d6dc6bb5cf262913c429c (diff) | |
download | gcc-d21328a0d42f1b6a92f777acf4972e3c1c5d330c.zip gcc-d21328a0d42f1b6a92f777acf4972e3c1c5d330c.tar.gz gcc-d21328a0d42f1b6a92f777acf4972e3c1c5d330c.tar.bz2 |
[Ada] Fix internal error on packed array In/Out actual parameter
This fixes an issue introduced in Ada 2012 for calls to functions taking
an In/Out parameter and for which the actual is the component of a
packed array. In this case, the front-end needs to create a temporary
for the actual, initialize it before the call and assign it back after
it, because operations on bit-packed arrays are converted into
mask-and-shift sequences.
2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
* exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
parameters of function calls here either.
gcc/testsuite/
* gnat.dg/pack23.adb, gnat.dg/pack23_pkg.ads: New testcase.
From-SVN: r273124
Diffstat (limited to 'gcc/tree-outof-ssa.c')
0 files changed, 0 insertions, 0 deletions