]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/c-family/c-common.c
Make canonical_va_list_type more strict
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Sep 2016 14:38:56 +0000 (14:38 +0000)
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Sep 2016 14:38:56 +0000 (14:38 +0000)
commit3bb45f768ac518fea4baca349f976a2f30503478
tree3c42070a9bfa92bf3029b74813fd60d1dd925ccc
parent6f3863c89dc2fe4f9714e5f18bdfad7b44647561
Make canonical_va_list_type more strict

2016-09-10  Tom de Vries  <tom@codesourcery.com>

PR C/71602
* builtins.c (std_canonical_va_list_type): Strictly return non-null for
va_list type only.
* config/i386/i386.c (ix86_canonical_va_list_type): Same.
* gimplify.c (gimplify_va_arg_expr): Handle &va_list.

* c-common.c (build_va_arg): Handle more strict
targetm.canonical_va_list_type.  Replace first argument type error with
assert.

* c-c++-common/va-arg-va-list-type.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240072 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/config/i386/i386.c
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/va-arg-va-list-type.c [new file with mode: 0644]