(convert_modes): Reset OLDMODE from X after we strip a SUBREG due to a
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 12 Oct 1993 19:41:52 +0000 (15:41 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 12 Oct 1993 19:41:52 +0000 (15:41 -0400)
promoted variable.

From-SVN: r5752

gcc/expr.c

index 3a4f6bb2bed0a0990c7813b3776ff8b96cc745ed..5353fbaddab2c3787e91c807a699c7f33dccd7aa 100644 (file)
@@ -1183,9 +1183,6 @@ convert_modes (mode, oldmode, x, unsignedp)
 {
   register rtx temp;
 
-  if (GET_MODE (x) != VOIDmode)
-    oldmode = GET_MODE (x);
   /* If FROM is a SUBREG that indicates that we have already done at least
      the required extension, strip it.  */
 
@@ -1194,6 +1191,9 @@ convert_modes (mode, oldmode, x, unsignedp)
       && SUBREG_PROMOTED_UNSIGNED_P (x) == unsignedp)
     x = gen_lowpart (mode, x);
 
+  if (GET_MODE (x) != VOIDmode)
+    oldmode = GET_MODE (x);
   if (mode == oldmode)
     return x;