diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e378c87d73d..c448f0fedcf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Sat Nov 27 08:38:26 1999 Richard Kenner + * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is + known to be multiple of divisor. + * expr.c (store_constructor): Don't clobber TARGET if CLEARED. * combine.c (try_combine): Add code to try to merge a set of a diff --git a/gcc/expr.c b/gcc/expr.c index 5fc55e52572..4f9f439b88a 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4185,7 +4185,7 @@ store_constructor (exp, target, align, cleared) offset = build (WITH_RECORD_EXPR, sizetype, offset, make_tree (TREE_TYPE (exp), target)); - offset = size_binop (FLOOR_DIV_EXPR, offset, + offset = size_binop (EXACT_DIV_EXPR, offset, size_int (BITS_PER_UNIT)); offset_rtx = expand_expr (offset, NULL_RTX, VOIDmode, 0);