diff options
author | Tom de Vries <tom@codesourcery.com> | 2015-05-13 09:06:18 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2015-05-13 09:06:18 +0000 |
commit | fcd424cecbe8874404fc92520954ec806e7886fc (patch) | |
tree | 329af8074710a22884ff6b12ff17c6f07afbea73 /gcc/gimplify.c | |
parent | 7947dd0bdf9cfe2a704355b1e5d7c7f786c67b9b (diff) | |
download | gcc-fcd424cecbe8874404fc92520954ec806e7886fc.zip gcc-fcd424cecbe8874404fc92520954ec806e7886fc.tar.gz gcc-fcd424cecbe8874404fc92520954ec806e7886fc.tar.bz2 |
Gimplify va_arg ap based on do_deref
2015-05-13 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/66010
* gimplify.h (gimplify_va_arg_internal): Remove declaration.
* gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
* tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
and rval based on do_deref.
From-SVN: r223120
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 322d0ba..4846478 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -9302,32 +9302,6 @@ dummy_object (tree type) return build2 (MEM_REF, type, t, t); } -/* Call the target expander for evaluating a va_arg call of VALIST - and TYPE. */ - -tree -gimplify_va_arg_internal (tree valist, tree type, gimple_seq *pre_p, - gimple_seq *post_p) -{ - tree have_va_type = TREE_TYPE (valist); - tree cano_type = targetm.canonical_va_list_type (have_va_type); - - if (cano_type != NULL_TREE) - have_va_type = cano_type; - - /* Make it easier for the backends by protecting the valist argument - from multiple evaluations. */ - if (TREE_CODE (have_va_type) == ARRAY_TYPE) - { - gcc_assert (TREE_CODE (TREE_TYPE (valist)) != ARRAY_TYPE); - gimplify_expr (&valist, pre_p, post_p, is_gimple_val, fb_rvalue); - } - else - gimplify_expr (&valist, pre_p, post_p, is_gimple_min_lval, fb_lvalue); - - return targetm.gimplify_va_arg_expr (valist, type, pre_p, post_p); -} - /* Gimplify __builtin_va_arg, aka VA_ARG_EXPR, which is not really a builtin function, but a very special sort of operator. */ |