diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-12-22 17:55:49 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-12-22 17:55:49 -0500 |
commit | 9151b3bf9265cb1739bf7e9144e7ed5a78ec590a (patch) | |
tree | 662b8904b8d840c75a64c7a35eaca23aa7c84b42 /gcc | |
parent | ff18b63b8d4f8399598ac3bea0720b489bc8a248 (diff) | |
download | gcc-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.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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; } |