]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: fix ICE on __builtin_ms_va_copy [PR105765]
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 19 Oct 2022 20:49:38 +0000 (16:49 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Wed, 19 Oct 2022 20:49:38 +0000 (16:49 -0400)
commitebe87edadc4a3f15a6a0d0c1d4a198e0ea37d8b5
treeeb5ad328db141854e3ffd88567478f797175a19c
parentfb4db9bc1c567eaf850e997853d084d0832dd4c1
analyzer: fix ICE on __builtin_ms_va_copy [PR105765]

gcc/analyzer/ChangeLog:
PR analyzer/105765
* varargs.cc (get_BT_VALIST_ARG): Rename to...
(get_va_copy_arg): ...this, and update logic for determining level
of indirection of va_copy's argument to use type of argument,
rather than looking at va_list_type_node, to correctly handle
__builtin_ms_va_copy.
(get_stateful_BT_VALIST_ARG): Rename to...
(get_stateful_va_copy_arg): ...this.
(va_list_state_machine::on_va_copy): Update for renaming.
(region_model::impl_call_va_copy): Likewise.

gcc/testsuite/ChangeLog:
PR analyzer/105765
* gcc.dg/analyzer/stdarg-1-ms_abi.c: New test, based on stdarg-1.c.
* gcc.dg/analyzer/stdarg-1-sysv_abi.c: Likewise.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/varargs.cc
gcc/testsuite/gcc.dg/analyzer/stdarg-1-ms_abi.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/stdarg-1-sysv_abi.c [new file with mode: 0644]