aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.cc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2024-01-24 10:11:35 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2024-01-24 10:11:35 -0500
commite503f9aca9192654d83f141ae7865a3c9d90bf0d (patch)
tree61e317740cac6dcb006ffe286dae1830f7a5146b /gcc/cgraph.cc
parentb6e537571c21d8f0bc276d7afa156d6d4a54a1c9 (diff)
downloadgcc-e503f9aca9192654d83f141ae7865a3c9d90bf0d.zip
gcc-e503f9aca9192654d83f141ae7865a3c9d90bf0d.tar.gz
gcc-e503f9aca9192654d83f141ae7865a3c9d90bf0d.tar.bz2
analyzer: fix taint false +ve due to overzealous state purging [PR112977]
gcc/analyzer/ChangeLog: PR analyzer/112977 * engine.cc (impl_region_model_context::on_liveness_change): Pass m_ext_state to sm_state_map::on_liveness_change. * program-state.cc (sm_state_map::on_svalue_leak): Guard removal of map entry based on can_purge_p. (sm_state_map::on_liveness_change): Add ext_state param. Add workaround for bad interaction between state purging and alt-inherited sm-state. * program-state.h (sm_state_map::on_liveness_change): Add ext_state param. * sm-taint.cc (taint_state_machine::has_alt_get_inherited_state_p): New. (taint_state_machine::can_purge_p): Return false for "has_lb" and "has_ub". * sm.h (state_machine::has_alt_get_inherited_state_p): New vfunc. gcc/testsuite/ChangeLog: PR analyzer/112977 * gcc.dg/plugin/plugin.exp: Add taint-pr112977.c. * gcc.dg/plugin/taint-pr112977.c: New test. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/cgraph.cc')
0 files changed, 0 insertions, 0 deletions