(expand_expr, case ABS_EXPR): Don't copy twice into volatile MEM.
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 9 Oct 1993 19:19:52 +0000 (15:19 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 9 Oct 1993 19:19:52 +0000 (15:19 -0400)
From-SVN: r5698

gcc/expr.c

index f31e048..91b2d6e 100644 (file)
@@ -5001,6 +5001,7 @@ expand_expr (exp, target, tmode, modifier)
       target = original_target;
       temp = gen_label_rtx ();
       if (target == 0 || ! safe_from_p (target, TREE_OPERAND (exp, 0))
+         || (GET_CODE (target) == MEM && MEM_VOLATILE_P (target))
          || (GET_CODE (target) == REG
              && REGNO (target) < FIRST_PSEUDO_REGISTER))
        target = gen_reg_rtx (mode);