OSDN Git Service

* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Jul 2007 12:05:13 +0000 (12:05 +0000)
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Jul 2007 12:05:13 +0000 (12:05 +0000)
operands with compatible type.

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

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 8b2c452..7fed276 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
+       operands with compatible type.
+
 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
 
        * expr.h (store_bit_field): Don't return a value.
index f2cb51f..4768eaa 100644 (file)
@@ -6465,7 +6465,7 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
        {
          regalign = 1;
          u = build2 (BIT_AND_EXPR, TREE_TYPE (reg), reg,
-                    size_int (n_reg - 1));
+                    build_int_cst (TREE_TYPE (reg), n_reg - 1));
          u = build2 (POSTINCREMENT_EXPR, TREE_TYPE (reg), reg, u);
        }
       /* _Decimal128 is passed in even/odd fpr pairs; the stored
@@ -6487,7 +6487,8 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
       if (sav_ofs)
        t = build2 (POINTER_PLUS_EXPR, ptr_type_node, sav, size_int (sav_ofs));
 
-      u = build2 (POSTINCREMENT_EXPR, TREE_TYPE (reg), reg, size_int (n_reg));
+      u = build2 (POSTINCREMENT_EXPR, TREE_TYPE (reg), reg,
+                 build_int_cst (TREE_TYPE (reg), n_reg));
       u = fold_convert (sizetype, u);
       u = build2 (MULT_EXPR, sizetype, u, size_int (sav_scale));
       t = build2 (POINTER_PLUS_EXPR, ptr_type_node, t, u);