(expand_increment): If pre-incrementing a promoted variable, don't
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 5 Jul 1994 22:27:27 +0000 (18:27 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 5 Jul 1994 22:27:27 +0000 (18:27 -0400)
adjust OP0 since the result won't be used.

From-SVN: r7655

gcc/expr.c

index 46be1f32acfb42155f7d19455e057e56159ab182..a2b24c4b051e7a404712ddcfaeb657f166706a42 100644 (file)
@@ -8042,7 +8042,12 @@ expand_increment (exp, post)
      shared (it was made by the expand_expr call above).  */
 
   if (GET_CODE (op0) == SUBREG && SUBREG_PROMOTED_VAR_P (op0))
-    SUBREG_REG (op0) = copy_to_reg (SUBREG_REG (op0));
+    {
+      if (post)
+       SUBREG_REG (op0) = copy_to_reg (SUBREG_REG (op0));
+      else
+       bad_subreg = 1;
+    }
   else if (GET_CODE (op0) == SUBREG
           && GET_MODE_BITSIZE (GET_MODE (op0)) < BITS_PER_WORD)
     {