* expr.c (store_field): In the bitfield case, if the value comes from
commit082b91b6dcc77a8ae60cc77ba64da716cea90ed7
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Jan 2017 22:17:17 +0000 (9 22:17 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Jan 2017 22:17:17 +0000 (9 22:17 +0000)
tree8d71726144d66445d4f0544fc2a11951811121ba
parent206d28833241b95fde6e785b3bfef85bb34dafde
* 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.

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