From bd5dab534bc87446279c5b10f1fdbf8c2be6a68c Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 24 Sep 2000 15:35:44 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c6ecd38ca78..4b535509d03 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sun Sep 24 09:15:48 2000 Richard Kenner + + * expr.c (store_field): If BITSIZE is negative, use size of type. + (expand_expr, case COMPONENT_EXPR): Likewise. + Sun 24-Sep-2000 11:40:23 BST Neil Booth * cpplex.c: Update TODO comment. diff --git a/gcc/expr.c b/gcc/expr.c index 6013c3e96d7..01859220d9b 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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;