aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorJanis Johnson <janis187@us.ibm.com>2008-04-04 00:20:48 +0000
committerJanis Johnson <janis@gcc.gnu.org>2008-04-04 00:20:48 +0000
commit383e91e4722ce675c894ea8fb83edd5a3b4ab274 (patch)
tree1ab9178dcdbf90b709386885ca83b744eb35c27b /gcc/config
parent311b11ec9e5d6daac2f1350391c921e7dc5f4a87 (diff)
downloadgcc-383e91e4722ce675c894ea8fb83edd5a3b4ab274.zip
gcc-383e91e4722ce675c894ea8fb83edd5a3b4ab274.tar.gz
gcc-383e91e4722ce675c894ea8fb83edd5a3b4ab274.tar.bz2
re PR target/35713 (invalid type for va_arg with _Decimal128)
PR target/35713 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer constants of the appropriate size for runtime calculations. From-SVN: r133887
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 4588a14..0105239 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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);
}
}