OSDN Git Service

* expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Jul 1999 10:23:05 +0000 (10:23 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Jul 1999 10:23:05 +0000 (10:23 +0000)
tree for op1, not the rtl.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28292 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/expr.c

index 3046572..3d5b4d7 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the 
+       tree for op1, not the rtl.
+
 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
 
        * m88k.c (m88k_builtin_saveregs): Break out the constructor code
index e22c1df..e240961 100644 (file)
@@ -4018,7 +4018,9 @@ store_constructor (exp, target, cleared)
      int cleared;
 {
   tree type = TREE_TYPE (exp);
+#ifdef WORD_REGISTER_OPERATIONS
   rtx exp_size = expr_size (exp);
+#endif
 
   /* We know our target cannot conflict, since safe_from_p has been called.  */
 #if 0
@@ -6955,7 +6957,7 @@ expand_expr (exp, target, tmode, modifier)
              constant_part
                = immed_double_const (TREE_INT_CST_LOW (TREE_OPERAND (exp, 0)),
                                      (HOST_WIDE_INT) 0,
-                                     GET_MODE (op1));
+                                     TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 1))));
              op1 = plus_constant (op1, INTVAL (constant_part));
              if (modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER)
                op1 = force_operand (op1, target);