diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1996-02-13 10:28:57 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1996-02-13 10:28:57 -0800 |
commit | 126e5b0d250c6955ae27a0f8c65e1f0e254215df (patch) | |
tree | 83a8c98e3e8976958bad20178e4594b189935f59 | |
parent | 03075c13673a1e1905d6a3a9d18b3e69d0aadc74 (diff) | |
download | gcc-126e5b0d250c6955ae27a0f8c65e1f0e254215df.zip gcc-126e5b0d250c6955ae27a0f8c65e1f0e254215df.tar.gz gcc-126e5b0d250c6955ae27a0f8c65e1f0e254215df.tar.bz2 |
(store_constructor_field): Only call change_address if
bitpos is nonzero.
From-SVN: r11258
-rw-r--r-- | gcc/expr.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -3275,12 +3275,11 @@ store_constructor_field (target, bitsize, bitpos, if (TREE_CODE (exp) == CONSTRUCTOR && (bitpos % BITS_PER_UNIT) == 0) { - bitpos /= BITS_PER_UNIT; - store_constructor (exp, - change_address (target, VOIDmode, - plus_constant (XEXP (target, 0), - bitpos)), - cleared); + if (bitpos != 0) + target = change_address (target, VOIDmode, + plus_constant (XEXP (target, 0), + bitpos / BITS_PER_UNIT)); + store_constructor (exp, target, cleared); } else store_field (target, bitsize, bitpos, mode, exp, |