aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-12-22 17:55:49 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-12-22 17:55:49 -0500
commit9151b3bf9265cb1739bf7e9144e7ed5a78ec590a (patch)
tree662b8904b8d840c75a64c7a35eaca23aa7c84b42 /gcc
parentff18b63b8d4f8399598ac3bea0720b489bc8a248 (diff)
downloadgcc-9151b3bf9265cb1739bf7e9144e7ed5a78ec590a.zip
gcc-9151b3bf9265cb1739bf7e9144e7ed5a78ec590a.tar.gz
gcc-9151b3bf9265cb1739bf7e9144e7ed5a78ec590a.tar.bz2
(store_constructor): Don't call change_address on REG.
(expand_expr, case CONSTRUCTOR): Likewise. From-SVN: r10836
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index fb415c6..c0700df 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -3082,8 +3082,9 @@ store_constructor (exp, target)
if (TREE_READONLY (field))
{
- to_rtx = change_address (to_rtx, GET_MODE (to_rtx),
- XEXP (to_rtx, 0));
+ if (GET_CODE (to_rtx) == MEM)
+ to_rtx = change_address (to_rtx, GET_MODE (to_rtx),
+ XEXP (to_rtx, 0));
RTX_UNCHANGING_P (to_rtx) = 1;
}
@@ -4553,8 +4554,9 @@ expand_expr (exp, target, tmode, modifier)
if (TREE_READONLY (exp))
{
- target = change_address (target, GET_MODE (target),
- XEXP (target, 0));
+ if (GET_CODE (target) == MEM)
+ target = change_address (target, GET_MODE (target),
+ XEXP (target, 0));
RTX_UNCHANGING_P (target) = 1;
}