Don't take address of ap unless necessary
commitc37be9ecc6e11ef0908ecdea3667a6a68c5ef7ca
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 May 2015 09:46:47 +0000 (12 09:46 +0000)
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 May 2015 09:46:47 +0000 (12 09:46 +0000)
treec10f8ac5291a1a6a12e7472c1ad1acd14764ffef
parent2b108e183a487a8e3ab7ca4002637137aac69818
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223054 138bc75d-0d04-0410-961f-82ee72b054a4
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