diff options
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/expr.c | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba92327..65a39a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes + when making new MEM. + * Makefile.in (LN): Remove duplicate definition. 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk> @@ -6939,8 +6939,14 @@ expand_expr (exp, target, tmode, modifier) /* Get a reference to just this component. */ if (modifier == EXPAND_CONST_ADDRESS || modifier == EXPAND_SUM || modifier == EXPAND_INITIALIZER) - op0 = gen_rtx_MEM (mode1, plus_constant (XEXP (op0, 0), - (bitpos / BITS_PER_UNIT))); + { + rtx new = gen_rtx_MEM (mode1, + plus_constant (XEXP (op0, 0), + (bitpos / BITS_PER_UNIT))); + + MEM_COPY_ATTRIBUTES (new, op0); + op0 = new; + } else op0 = change_address (op0, mode1, plus_constant (XEXP (op0, 0), |