aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-04-24 11:17:02 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-04-24 11:17:02 -0400
commite70d22c84f32856cbbccb3bfde51e8a2dcbf8ba2 (patch)
tree3516820fd1cd11b6292ff0a852d5392c6670fb47 /gcc
parent0aaf4a5876d9d4a4b3a6c42d0270358ea626fafb (diff)
downloadgcc-e70d22c84f32856cbbccb3bfde51e8a2dcbf8ba2.zip
gcc-e70d22c84f32856cbbccb3bfde51e8a2dcbf8ba2.tar.gz
gcc-e70d22c84f32856cbbccb3bfde51e8a2dcbf8ba2.tar.bz2
(expand_expr, case SAVE_EXPR): Fix error in last change.
From-SVN: r7141
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 7f04af4..a21ad1cc 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -3952,8 +3952,9 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (SAVE_EXPR_RTL (exp)) == REG
&& GET_MODE (SAVE_EXPR_RTL (exp)) != mode)
{
- temp = gen_rtx (SUBREG, promote_mode (type, mode, &unsignedp, 0),
- SAVE_EXPR_RTL (exp), 0);
+ /* Compute the signedness and make the proper SUBREG. */
+ promote_mode (type, mode, &unsignedp, 0);
+ temp = gen_rtx (SUBREG, mode, SAVE_EXPR_RTL (exp), 0);
SUBREG_PROMOTED_VAR_P (temp) = 1;
SUBREG_PROMOTED_UNSIGNED_P (temp) = unsignedp;
return temp;