diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-09-14 16:53:07 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-09-14 12:53:07 -0400 |
commit | fe7a8445101cfadcda67b45eb1ad0322df8976ae (patch) | |
tree | 88973cc2cea2c4796c6f378567e0e60c02568913 | |
parent | 9985f21020181f2b6193682334b9e15c8583974c (diff) | |
download | gcc-fe7a8445101cfadcda67b45eb1ad0322df8976ae.zip gcc-fe7a8445101cfadcda67b45eb1ad0322df8976ae.tar.gz gcc-fe7a8445101cfadcda67b45eb1ad0322df8976ae.tar.bz2 |
expr.c (expand_expr, [...]): Copy memory attributes when making new MEM.
* expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
when making new MEM.
From-SVN: r36412
-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), |