analyzer: fix missing -Wanalyzer-use-of-uninitialized-value on special-cased function...
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 9 Aug 2022 23:58:54 +0000 (19:58 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 9 Aug 2022 23:58:54 +0000 (19:58 -0400)
commitbddd8d86e3036e480158ba9219ee3f290ba652ce
treebf8679b09610d267849816bbd0ee8cf3ad4d9a90
parenta56c1641e9d25e46059168e811b4a2f185f07b6b
analyzer: fix missing -Wanalyzer-use-of-uninitialized-value on special-cased functions [PR106573]

We were missing checks for uninitialized params on calls to functions
that the analyzer has hardcoded knowledge of - both for those that are
handled just by state machines, and for those that are handled in
region-model-impl-calls.cc (for those arguments for which the svalue
wasn't accessed in handling the call).

Fixed thusly.

gcc/analyzer/ChangeLog:
PR analyzer/106573
* region-model.cc (region_model::on_call_pre): Ensure that we call
get_arg_svalue on all arguments.

gcc/testsuite/ChangeLog:
PR analyzer/106573
* gcc.dg/analyzer/error-uninit.c: New test.
* gcc.dg/analyzer/fd-uninit-1.c: New test.
* gcc.dg/analyzer/file-uninit-1.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/region-model.cc
gcc/testsuite/gcc.dg/analyzer/error-uninit.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/fd-uninit-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/file-uninit-1.c [new file with mode: 0644]