expr.c (store_field): In the bitfield case...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 9 Jan 2017 22:17:17 +0000 (22:17 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 9 Jan 2017 22:17:17 +0000 (22:17 +0000)
commita271e415611a80f1e86e625fd61360e193d04474
tree8d71726144d66445d4f0544fc2a11951811121ba
parent852a63c540fff78a95e77a42c5f08d6a25ffc797
expr.c (store_field): In the bitfield case...

* expr.c (store_field): In the bitfield case, if the value comes from
a function call and is of an aggregate type returned in registers, do
not modify the field mode; extract the value in all cases if the mode
is BLKmode and the size is not larger than a word.

From-SVN: r244249
14 files changed:
gcc/ChangeLog
gcc/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/call2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/opt/call3.C [new file with mode: 0644]
gcc/testsuite/gnat.dg/array26.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/array26_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/array26_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/array27.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/array27_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/array27_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/array28.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/array28_pkg.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/array28_pkg.ads [new file with mode: 0644]