* expr.c (expand_expr): Call promote_mode to set unsignedp.
authorSteve Ellcey <sje@cup.hp.com>
Tue, 4 Mar 2003 20:16:24 +0000 (20:16 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 4 Mar 2003 20:16:24 +0000 (20:16 +0000)
From-SVN: r63796

gcc/ChangeLog
gcc/expr.c

index 4bb936d22398e739cedafcda88823acca55b8aff..a79b9806fb0cc3de49d290341c52e7fcee3c61ca 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-04  Steve Ellcey  <sje@cup.hp.com>
+
+       * expr.c (expand_expr): Call promote_mode to set unsignedp.
+
 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
 
        * configure.in: Don't always define TARGET_SYSTEM_ROOT.
index 9643a558c731ef7ecf5e89b49730f2c434308854..39940cb609d89ea4c14c01e213556969bb68e0b9 100644 (file)
@@ -6883,12 +6883,12 @@ expand_expr (exp, target, tmode, modifier)
          /* If the mode of TEMP does not match that of the expression, it
             must be a promoted value.  We pass store_expr a SUBREG of the
             wanted mode but mark it so that we know that it was already
-            extended.  Note that `unsignedp' was modified above in
-            this case.  */
+            extended.  */
 
          if (GET_CODE (temp) == REG && GET_MODE (temp) != mode)
            {
              temp = gen_lowpart_SUBREG (mode, SAVE_EXPR_RTL (exp));
+             promote_mode (type, mode, &unsignedp, 0);
              SUBREG_PROMOTED_VAR_P (temp) = 1;
              SUBREG_PROMOTED_UNSIGNED_SET (temp, unsignedp);
            }