analyzer: support for creat, dup, dup2 and dup3 [PR106298]
authorImmad Mir <mirimmad@outlook.com>
Tue, 2 Aug 2022 16:52:07 +0000 (22:22 +0530)
committerImmad Mir <mirimmad@outlook.com>
Tue, 2 Aug 2022 16:52:15 +0000 (22:22 +0530)
commit6a11f2d974a912aaaedb0ce32cdfde10193003cd
treeaeb512c5b76658f4de9179ad134feebe59a17526
parent6d41f7c39cff9fb5ccce8e60b6de1679a1dc092a
analyzer: support for creat, dup, dup2 and dup3 [PR106298]

This patch extends the state machine in sm-fd.cc to support
creat, dup, dup2 and dup3 functions.

Lightly tested on x86_64 Linux.

gcc/analyzer/ChangeLog:
PR analyzer/106298
* sm-fd.cc (fd_state_machine::on_open): Add
creat, dup, dup2 and dup3 functions.
(enum dup): New.
(fd_state_machine::valid_to_unchecked_state): New.
(fd_state_machine::on_creat): New.
(fd_state_machine::on_dup): New.

gcc/testsuite/ChangeLog:
PR analyzer/106298
* gcc.dg/analyzer/fd-1.c: Add tests for 'creat'.
* gcc.dg/analyzer/fd-2.c: Likewise.
* gcc.dg/analyzer/fd-4.c: Likewise.
* gcc.dg/analyzer/fd-dup-1.c: New tests.

Signed-off-by: Immad Mir <mirimmad@outlook.com>
gcc/analyzer/sm-fd.cc
gcc/testsuite/gcc.dg/analyzer/fd-1.c
gcc/testsuite/gcc.dg/analyzer/fd-2.c
gcc/testsuite/gcc.dg/analyzer/fd-4.c
gcc/testsuite/gcc.dg/analyzer/fd-dup-1.c [new file with mode: 0644]