aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/sm.h
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2022-07-07 15:50:26 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2022-07-07 15:50:26 -0400
commit897b3b31f0a94b8bac59c6061655c6a32646d0a0 (patch)
tree65777b219fc02057535cf09d3f199d58a259e783 /gcc/analyzer/sm.h
parentad6135e261ced29972e5aa33404e45bcdd99440f (diff)
downloadgcc-897b3b31f0a94b8bac59c6061655c6a32646d0a0.zip
gcc-897b3b31f0a94b8bac59c6061655c6a32646d0a0.tar.gz
gcc-897b3b31f0a94b8bac59c6061655c6a32646d0a0.tar.bz2
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>
Diffstat (limited to 'gcc/analyzer/sm.h')
-rw-r--r--gcc/analyzer/sm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/analyzer/sm.h b/gcc/analyzer/sm.h
index e80ef1f..353a6db 100644
--- a/gcc/analyzer/sm.h
+++ b/gcc/analyzer/sm.h
@@ -279,6 +279,8 @@ public:
virtual const program_state *get_old_program_state () const = 0;
virtual const program_state *get_new_program_state () const = 0;
+ const region_model *get_old_region_model () const;
+
protected:
sm_context (int sm_idx, const state_machine &sm)
: m_sm_idx (sm_idx), m_sm (sm) {}