]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: fix -Wanalyzer-va-arg-type-mismatch false +ve on int types [PR111289]
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 19 Feb 2024 23:08:05 +0000 (18:08 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Mon, 19 Feb 2024 23:08:05 +0000 (18:08 -0500)
commit5651ad62b08096a155a7e394c7494f5ff1c04f4f
treea48f3629d988aa7903069e791a60b8446d567b4e
parenteb37ea529745c38dcf86c3cdbedb66df69ea9e35
analyzer: fix -Wanalyzer-va-arg-type-mismatch false +ve on int types [PR111289]

gcc/analyzer/ChangeLog:
PR analyzer/111289
* varargs.cc (representable_in_integral_type_p): New.
(va_arg_compatible_types_p): Add "arg_sval" param.  Handle integer
types.
(kf_va_arg::impl_call_pre): Pass arg_sval to
va_arg_compatible_types_p.

gcc/testsuite/ChangeLog:
PR analyzer/111289
* c-c++-common/analyzer/stdarg-pr111289-int.c: New test.
* c-c++-common/analyzer/stdarg-pr111289-ptr.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/varargs.cc
gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-int.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-ptr.c [new file with mode: 0644]