diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2007-07-27 14:05:13 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-07-27 12:05:13 +0000 |
commit | 8fb632ebbee726472d103728d9a14c3bf437999e (patch) | |
tree | 992cf47acd0ebd74195d91ea76653dd84a152322 /gcc | |
parent | a896d54dcb32fecd5be4db88eeb5fe48004f4652 (diff) | |
download | gcc-8fb632ebbee726472d103728d9a14c3bf437999e.zip gcc-8fb632ebbee726472d103728d9a14c3bf437999e.tar.gz gcc-8fb632ebbee726472d103728d9a14c3bf437999e.tar.bz2 |
rs6000.c (rs6000_gimplify_va_arg): Generate the operands with compatible type.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
operands with compatible type.
From-SVN: r126976
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8b2c452..7fed276 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index f2cb51fc..4768eaa 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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); |