Don't take address of ap unless necessary
authorTom de Vries <tom@codesourcery.com>
Tue, 12 May 2015 09:46:47 +0000 (09:46 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Tue, 12 May 2015 09:46:47 +0000 (09:46 +0000)
commitc7b38fd54552f2ff37becfb1a71ab3c2e1f8462d
treec10f8ac5291a1a6a12e7472c1ad1acd14764ffef
parentfed8bd87d5832d9c61c648ed2a2103f853fad00a
Don't take address of ap unless necessary

2015-05-12  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/66010
* gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
ifn_va_arg.
* gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
(gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
va_lists are passed, and remove corresponding handling.
(gimplify_va_arg_expr): Only take address of ap if necessary.  Add
do_deref argument to ifn_va_arg.
* tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
ifn_va_arg.

* c-common.c (build_va_arg): Don't mark ap addressable unless necessary.

* gcc.dg/tree-ssa/stdarg-2.c: Undo scan xfails for f15.

From-SVN: r223054
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/gimplify.c
gcc/gimplify.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
gcc/tree-stdarg.c