diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/builtins.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87c42b8..e6d9dd8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-07-10 Richard Henderson <rth@redhat.com> + + * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary + to HOST_WIDE_INT. Fold pad-args-down arithmetic. + 2004-07-10 Jakub Jelinek <jakub@redhat.com> * expr.h (store_bit_field, extract_bit_field): Remove last argument. diff --git a/gcc/builtins.c b/gcc/builtins.c index 7c9334b..02fdc92 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -4474,7 +4474,7 @@ tree std_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) { tree addr, t, type_size, rounded_size, valist_tmp; - unsigned int align, boundary; + unsigned HOST_WIDE_INT align, boundary; #ifdef ARGS_GROW_DOWNWARD /* All of the alignment and movement below is for args-grow-up machines. @@ -4520,7 +4520,7 @@ std_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p) t = fold (build3 (COND_EXPR, sizetype, t, size_zero_node, size_binop (MINUS_EXPR, rounded_size, type_size))); t = fold_convert (TREE_TYPE (addr), t); - addr = build2 (PLUS_EXPR, TREE_TYPE (addr), addr, t); + addr = fold (build2 (PLUS_EXPR, TREE_TYPE (addr), addr, t)); } /* Compute new value for AP. */ |
