2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-03-26 07:50:27 +08:00

expr.c (store_constructor_field): Don't call store_constructor if bitsize is not a multiple of a byte.

* expr.c (store_constructor_field): Don't call store_constructor
	if bitsize is not a multiple of a byte.

From-SVN: r81487
This commit is contained in:
Richard Kenner 2004-05-04 19:57:35 +00:00 committed by Richard Kenner
parent 27c2c3ec4a
commit 6c89c39a48
2 changed files with 8 additions and 0 deletions

@ -1,3 +1,8 @@
2004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (store_constructor_field): Don't call store_constructor
if bitsize is not a multiple of a byte.
2004-05-04 Richard Sandiford <rsandifo@redhat.com>
* reload1.c (inherit_piecemeal_p): New function.

@ -4492,7 +4492,10 @@ store_constructor_field (rtx target, unsigned HOST_WIDE_INT bitsize,
tree exp, tree type, int cleared, int alias_set)
{
if (TREE_CODE (exp) == CONSTRUCTOR
/* We can only call store_constructor recursively if the size and
bit position are on a byte boundary. */
&& bitpos % BITS_PER_UNIT == 0
&& (bitsize > 0 && bitsize % BITS_PER_UNIT == 0)
/* If we have a nonzero bitpos for a register target, then we just
let store_field do the bitfield handling. This is unlikely to
generate unnecessary clear instructions anyways. */