]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/analyzer/sm-fd.cc
analyzer: fix ICE on bind/connect with a constant fd [PR107928]
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 1 Dec 2022 02:26:41 +0000 (21:26 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Thu, 1 Dec 2022 02:26:41 +0000 (21:26 -0500)
commit45a75fd3d31265e43aa3ce7a5e851083d534b00b
tree022f97d866b6572a14df3c63f6690870cd13c399
parent9d68cba5eb20442f8075b8f92d1b20a00022852f
analyzer: fix ICE on bind/connect with a constant fd [PR107928]

gcc/analyzer/ChangeLog:
PR analyzer/107928
* sm-fd.cc (fd_state_machine::on_bind): Handle m_constant_fd in
the "success" outcome.
(fd_state_machine::on_connect): Likewise.
* sm-fd.dot: Add "constant_fd" state and its transitions.

gcc/testsuite/ChangeLog:
PR analyzer/107928
* gcc.dg/analyzer/fd-bind-pr107928.c: New test.
* gcc.dg/analyzer/fd-connect-pr107928.c: New test.
* gcc.dg/analyzer/fd-stream-socket-active-open.c
(test_active_open_from_connect_constant): New, adapted from
test_active_open_from_connect.
* gcc.dg/analyzer/fd-stream-socket-passive-open.c
(test_passive_open_from_bind_constant): New, adapted from
test_passive_open_from_bind.
(test_passive_open_from_listen_constant): New, adapted from
test_passive_open_from_listen.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/sm-fd.cc
gcc/analyzer/sm-fd.dot
gcc/testsuite/gcc.dg/analyzer/fd-bind-pr107928.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/fd-connect-pr107928.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-active-open.c
gcc/testsuite/gcc.dg/analyzer/fd-stream-socket-passive-open.c