]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: fix false positives from -Wanalyzer-tainted-divisor [PR106225]
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 7 Jul 2022 19:50:26 +0000 (15:50 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Thu, 7 Jul 2022 19:50:26 +0000 (15:50 -0400)
commit897b3b31f0a94b8bac59c6061655c6a32646d0a0
tree65777b219fc02057535cf09d3f199d58a259e783
parentad6135e261ced29972e5aa33404e45bcdd99440f
analyzer: fix false positives from -Wanalyzer-tainted-divisor [PR106225]

gcc/analyzer/ChangeLog:
PR analyzer/106225
* sm-taint.cc (taint_state_machine::on_stmt): Move handling of
assignments from division to...
(taint_state_machine::check_for_tainted_divisor): ...this new
function.  Reject warning when the divisor is known to be non-zero.
* sm.cc: Include "analyzer/program-state.h".
(sm_context::get_old_region_model): New.
* sm.h (sm_context::get_old_region_model): New decl.

gcc/testsuite/ChangeLog:
PR analyzer/106225
* gcc.dg/analyzer/taint-divisor-1.c: Add test coverage for various
correct and incorrect checks against zero.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/sm-taint.cc
gcc/analyzer/sm.cc
gcc/analyzer/sm.h
gcc/testsuite/gcc.dg/analyzer/taint-divisor-1.c