analyzer: fix uninit false +ve when returning structs
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 26 Jul 2021 19:25:00 +0000 (15:25 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Mon, 26 Jul 2021 19:25:00 +0000 (15:25 -0400)
commit3a1d168e9e0e3e38adedf5df393e9f8c075fc755
tree669d6ecfad225fc487c1a161b168d3f57dfc5b1e
parent1ce0b26e6e1e6c348b1d54f1f462a44df6fe47f5
analyzer: fix uninit false +ve when returning structs

This patch fixes some false positives from
 -Wanalyzer-use-of-uninitialized-value
when returning structs from functions (seen on the Linux kernel).

gcc/analyzer/ChangeLog:
* region-model.cc (region_model::on_call_pre): Always set conjured
LHS, not just for SSA names.

gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/sock-1.c: New test.
* gcc.dg/analyzer/sock-2.c: New test.

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