]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: fix feasibility false +ve with overly complex svalues
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 23 Jul 2021 02:36:05 +0000 (22:36 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Fri, 23 Jul 2021 02:36:05 +0000 (22:36 -0400)
commit60933a148ab33c82915b40690b3ced6abc32a1bf
tree04b6d29d7e1fe885237be0172dd4314fd15deb3f
parent3382846558e02044598556e66e5ea1cb3115429d
analyzer: fix feasibility false +ve with overly complex svalues

gcc/analyzer/ChangeLog:
* diagnostic-manager.cc
(class auto_disable_complexity_checks): New.
(epath_finder::explore_feasible_paths): Use it to disable
complexity checks whilst processing the worklist.
* region-model-manager.cc
(region_model_manager::region_model_manager): Initialize
m_check_complexity.
(region_model_manager::reject_if_too_complex): Bail if
m_check_complexity is false.
* region-model.h
(region_model_manager::enable_complexity_check): New.
(region_model_manager::disable_complexity_check): New.
(region_model_manager::m_check_complexity): New.

gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/feasibility-3.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/analyzer/diagnostic-manager.cc
gcc/analyzer/region-model-manager.cc
gcc/analyzer/region-model.h
gcc/testsuite/gcc.dg/analyzer/feasibility-3.c [new file with mode: 0644]