re PR target/35713 (invalid type for va_arg with _Decimal128)
authorJanis Johnson <janis187@us.ibm.com>
Fri, 4 Apr 2008 00:20:48 +0000 (00:20 +0000)
committerJanis Johnson <janis@gcc.gnu.org>
Fri, 4 Apr 2008 00:20:48 +0000 (00:20 +0000)
PR target/35713
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
  constants of the appropriate size for runtime calculations.

From-SVN: r133887

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

index 6965a49c8f437d9916c1587e6aed8eae26727409..c077778a4f07efce7e48f1cfd544908306ed0b93 100644 (file)
@@ -1,5 +1,9 @@
 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
 
+       PR target/35713
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
+         constants of the appropriate size for runtime calculations.
+
        PR c/35712
        * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
          decimal-float literal constant zero.
index 4588a14d274538cfa5147c2845ab19b7eabf9a20..01052398766811b7fd4fb09e28e5c4674863349f 100644 (file)
@@ -6832,7 +6832,8 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
       else if (reg == fpr && TYPE_MODE (type) == TDmode)
        {
          regalign = 1;
-         t = build2 (BIT_IOR_EXPR, TREE_TYPE (reg), reg, size_int (1));
+         t = build2 (BIT_IOR_EXPR, TREE_TYPE (reg), reg,
+                     build_int_cst (TREE_TYPE (reg), 1));
          u = build2 (MODIFY_EXPR, void_type_node, reg, t);
        }
 
@@ -6870,7 +6871,8 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
        {
          /* Ensure that we don't find any more args in regs.
             Alignment has taken care of for special cases.  */
-         t = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (reg), reg, size_int (8));
+         t = build_gimple_modify_stmt (reg,
+                                       build_int_cst (TREE_TYPE (reg), 8));
          gimplify_and_add (t, pre_p);
        }
     }