analyzer: factor out new class feasibility_state
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 10 Mar 2021 17:02:07 +0000 (12:02 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Wed, 10 Mar 2021 17:02:07 +0000 (12:02 -0500)
commit44fd4dc0b684e06c6c6d08b3994df23135bf2fbc
treea31d4c270aa49c9a9129e2411957719729269535
parent6b78729186060cf96c0b4e0f3eacf155f4e90376
analyzer: factor out new class feasibility_state

As preparatory work for a fix to PR analyzer/96374, this patch
moves the core state-update logic from the loop in
exploded_path::feasible_p into a new class feasibility_state.

No functional change intended.

gcc/analyzer/ChangeLog:
PR analyzer/96374
* engine.cc (exploded_path::feasible_p): Move "snodes_visited" and
"model" locals into a new class feasibility_state.  Move heart
of per-edge processing into
feasibility_state::maybe_update_for_edge.
(feasibility_state::feasibility_state): New.
(feasibility_state::maybe_update_for_edge): New, based on loop
body in exploded_path::feasible_p.
* exploded-graph.h (class feasibility_state): New.
gcc/analyzer/engine.cc
gcc/analyzer/exploded-graph.h