diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-12 15:41:52 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-12 15:41:52 -0400 |
commit | 64791b18b89002e1abd71d9a7d4d37c2f5612ce1 (patch) | |
tree | 3ae27de9e0efb871d2ec9b48489d9a0d6b3a5de7 | |
parent | 581330672690361a796000190c5c728417688d9f (diff) | |
download | gcc-64791b18b89002e1abd71d9a7d4d37c2f5612ce1.zip gcc-64791b18b89002e1abd71d9a7d4d37c2f5612ce1.tar.gz gcc-64791b18b89002e1abd71d9a7d4d37c2f5612ce1.tar.bz2 |
(convert_modes): Reset OLDMODE from X after we strip a SUBREG due to a
promoted variable.
From-SVN: r5752
-rw-r--r-- | gcc/expr.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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; |