]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/analyzer/sm-fd.cc
analyzer: fix ICE on 'bind(INT_CST, ...)' [PR107783]
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 22 Nov 2022 22:29:21 +0000 (17:29 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 22 Nov 2022 22:29:21 +0000 (17:29 -0500)
commit64fb291c5839e1a82afb62743172b4eab1267399
tree4c9163bc9a0fc24d6a0278fe1434ec998dae57b7
parent7c9717fcb5cf94ce1e7ef5c903058adf9980ff28
analyzer: fix ICE on 'bind(INT_CST, ...)' [PR107783]

This was crashing inside fd_phase_mismatch's ctor with assertion
failure when the state was "fd-constant".

Fix the ICE by not complaining about constants passed to these APIs.

gcc/analyzer/ChangeLog:
PR analyzer/107783
* sm-fd.cc (fd_state_machine::check_for_new_socket_fd): Don't
complain when old state is "fd-constant".
(fd_state_machine::on_listen): Likewise.
(fd_state_machine::on_accept): Likewise.

gcc/testsuite/ChangeLog:
PR analyzer/107783
* gcc.dg/analyzer/fd-accept.c (test_accept_on_constant): New.
* gcc.dg/analyzer/fd-bind.c (test_bind_on_constant): New.
* gcc.dg/analyzer/fd-connect.c (test_connect_on_constant): New.
* gcc.dg/analyzer/fd-listen.c (test_listen_on_connected_socket):
Fix typo.
(test_listen_on_constant): New.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/sm-fd.cc
gcc/testsuite/gcc.dg/analyzer/fd-accept.c
gcc/testsuite/gcc.dg/analyzer/fd-bind.c
gcc/testsuite/gcc.dg/analyzer/fd-connect.c
gcc/testsuite/gcc.dg/analyzer/fd-listen.c