diff options
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r-- | gcc/config/sparc/sparc.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index a65b8366506..05cc3a4ea6b 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -6677,8 +6677,7 @@ sparc_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, incr = valist; if (align) { - incr = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, incr, - size_int (align - 1)); + incr = fold_build_pointer_plus_hwi (incr, align - 1); incr = fold_convert (sizetype, incr); incr = fold_build2 (BIT_AND_EXPR, sizetype, incr, size_int (-align)); @@ -6689,8 +6688,7 @@ sparc_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, addr = incr; if (BYTES_BIG_ENDIAN && size < rsize) - addr = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, incr, - size_int (rsize - size)); + addr = fold_build_pointer_plus_hwi (incr, rsize - size); if (indirect) { @@ -6714,8 +6712,7 @@ sparc_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, else addr = fold_convert (ptrtype, addr); - incr - = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, incr, size_int (rsize)); + incr = fold_build_pointer_plus_hwi (incr, rsize); gimplify_assign (valist, incr, post_p); return build_va_arg_indirect_ref (addr); |