diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2018-04-25 13:36:44 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2018-04-25 13:36:44 +0000 |
commit | 9fd777e570c1f99ada82b1dfc1147e7009a0f7b9 (patch) | |
tree | 0525f361046905aeb53f5119315e1f0cd350e462 /gcc/expr.c | |
parent | d0468e277dbf6467436837290db02134ab20f2d1 (diff) |
Merge branches/gcc-7-branch rev 259627.
Change-Id: I562fdd470b8fb23137c91e670eab4f0ba8d87204
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index c0dbd643831..0d287ecbe68 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6893,8 +6893,9 @@ store_field (rtx target, HOST_WIDE_INT bitsize, HOST_WIDE_INT bitpos, if (GET_CODE (temp) == PARALLEL) { HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (exp)); - machine_mode temp_mode - = smallest_mode_for_size (size * BITS_PER_UNIT, MODE_INT); + machine_mode temp_mode = GET_MODE (temp); + if (temp_mode == BLKmode || temp_mode == VOIDmode) + temp_mode = smallest_mode_for_size (size * BITS_PER_UNIT, MODE_INT); rtx temp_target = gen_reg_rtx (temp_mode); emit_group_store (temp_target, temp, TREE_TYPE (exp), size); temp = temp_target; |