diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-09-24 15:35:44 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-09-24 11:35:44 -0400 |
commit | bd5dab534bc87446279c5b10f1fdbf8c2be6a68c (patch) | |
tree | d5132e49b5152e9bdd4ca0abb8e4d113d615a307 /gcc/expr.c | |
parent | 838f313bbdf80d22aca1751d272efc3c58c2b870 (diff) | |
download | gcc-bd5dab534bc87446279c5b10f1fdbf8c2be6a68c.zip gcc-bd5dab534bc87446279c5b10f1fdbf8c2be6a68c.tar.gz gcc-bd5dab534bc87446279c5b10f1fdbf8c2be6a68c.tar.bz2 |
expr.c (store_field): If BITSIZE is negative, use size of type.
* expr.c (store_field): If BITSIZE is negative, use size of type.
(expand_expr, case COMPONENT_EXPR): Likewise.
From-SVN: r36588
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -4992,8 +4992,9 @@ store_field (target, bitsize, bitpos, mode, exp, value_mode, align >>= 1; emit_block_move (target, temp, - GEN_INT ((bitsize + BITS_PER_UNIT - 1) - / BITS_PER_UNIT), + bitsize == -1 ? expr_size (exp) + : GEN_INT ((bitsize + BITS_PER_UNIT - 1) + / BITS_PER_UNIT), align); return value_mode == VOIDmode ? const0_rtx : target; @@ -6927,8 +6928,9 @@ expand_expr (exp, target, tmode, modifier) target = assign_temp (type, 0, 1, 1); emit_block_move (target, op0, - GEN_INT ((bitsize + BITS_PER_UNIT - 1) - / BITS_PER_UNIT), + bitsize == -1 ? expr_size (exp) + : GEN_INT ((bitsize + BITS_PER_UNIT - 1) + / BITS_PER_UNIT), BITS_PER_UNIT); return target; |