OSDN Git Service

(store_constructor): Don't call change_address on REG.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Dec 1995 22:55:49 +0000 (22:55 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Dec 1995 22:55:49 +0000 (22:55 +0000)
(expand_expr, case CONSTRUCTOR): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10836 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/expr.c

index fb415c6..c0700df 100644 (file)
@@ -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;
            }