diff options
Diffstat (limited to 'gcc/config/ia64/ia64.c')
-rw-r--r-- | gcc/config/ia64/ia64.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 29a9a8dacf2..c07b21d9d53 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -50,7 +50,7 @@ along with GCC; see the file COPYING3. If not see #include "hashtab.h" #include "langhooks.h" #include "cfglayout.h" -#include "tree-gimple.h" +#include "gimple.h" #include "intl.h" #include "df.h" #include "debug.h" @@ -275,7 +275,7 @@ static tree ia64_handle_model_attribute (tree *, tree, tree, int, bool *); static tree ia64_handle_version_id_attribute (tree *, tree, tree, int, bool *); static void ia64_encode_section_info (tree, rtx, int); static rtx ia64_struct_value_rtx (tree, int); -static tree ia64_gimplify_va_arg (tree, tree, tree *, tree *); +static tree ia64_gimplify_va_arg (tree, tree, gimple_seq *, gimple_seq *); static bool ia64_scalar_mode_supported_p (enum machine_mode mode); static bool ia64_vector_mode_supported_p (enum machine_mode mode); static bool ia64_cannot_force_const_mem (rtx); @@ -4342,7 +4342,8 @@ ia64_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) /* Implement va_arg. */ static tree -ia64_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) +ia64_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, + gimple_seq *post_p) { /* Variable sized types are passed by reference. */ if (pass_by_reference (NULL, TYPE_MODE (type), type, false)) @@ -4365,8 +4366,7 @@ ia64_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p) t = build2 (BIT_AND_EXPR, TREE_TYPE (t), t, size_int (-2 * UNITS_PER_WORD)); t = fold_convert (TREE_TYPE (valist), t); - t = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (valist), valist, t); - gimplify_and_add (t, pre_p); + gimplify_assign (unshare_expr (valist), t, pre_p); } return std_gimplify_va_arg_expr (valist, type, pre_p, post_p); |