|
GCC Middle and Back End API Reference
|
#include <program-state.h>

Public Member Functions | |
| program_state (const extrinsic_state &ext_state) | |
| program_state (const program_state &other) | |
| program_state & | operator= (const program_state &other) |
| program_state (program_state &&other) | |
| ~program_state () | |
| hashval_t | hash () const |
| bool | operator== (const program_state &other) const |
| bool | operator!= (const program_state &other) const |
| void | print (const extrinsic_state &ext_state, pretty_printer *pp) const |
| void | dump_to_pp (const extrinsic_state &ext_state, bool simple, bool multiline, pretty_printer *pp) const |
| void | dump_to_file (const extrinsic_state &ext_state, bool simple, bool multiline, FILE *outf) const |
| void | dump (const extrinsic_state &ext_state, bool simple) const |
| void | dump () const |
| std::unique_ptr< diagnostics::digraphs::digraph > | make_diagnostic_state_graph (const extrinsic_state &ext_state) const |
| void | dump_sarif (const extrinsic_state &ext_state) const |
| void | dump_dot (const extrinsic_state &ext_state) const |
| std::unique_ptr< json::object > | to_json (const extrinsic_state &ext_state) const |
| std::unique_ptr< text_art::tree_widget > | make_dump_widget (const text_art::dump_widget_info &dwi) const |
| void | push_frame (const extrinsic_state &ext_state, const function &fun) |
| const function * | get_current_function () const |
| program_state | prune_for_point (exploded_graph &eg, const program_point &point, exploded_node *enode_for_diag, uncertainty_t *uncertainty) const |
| tree | get_representative_tree (const svalue *sval) const |
| bool | can_purge_p (const extrinsic_state &ext_state, const svalue *sval) const |
| bool | can_purge_base_region_p (const extrinsic_state &ext_state, const region *base_reg) const |
| bool | can_merge_with_p (const program_state &other, const extrinsic_state &ext_state, const program_point &point, program_state *out) const |
| void | validate (const extrinsic_state &ext_state) const |
| bool | replay_call_summary (call_summary_replay &r, const program_state &summary) |
| void | impl_call_analyzer_dump_state (const gcall &call, const extrinsic_state &ext_state, region_model_context *ctxt) |
Static Public Member Functions | |
| static void | detect_leaks (const program_state &src_state, const program_state &dest_state, const svalue *extra_sval, const extrinsic_state &ext_state, region_model_context *ctxt) |
Data Fields | |
| region_model * | m_region_model |
| auto_delete_vec< sm_state_map > | m_checker_states |
| bool | m_valid |
A class for representing the state of interest at a given path of
analysis.
Currently this is a combination of:
(a) a region_model, giving:
(a.1) a hierarchy of memory regions
(a.2) values for the regions
(a.3) inequalities between values
(b) sm_state_maps per state machine, giving a sparse mapping of
values to states. | ana::program_state::program_state | ( | const extrinsic_state & | ext_state | ) |
Referenced by can_merge_with_p(), detect_leaks(), operator!=(), operator=(), operator==(), program_state(), program_state(), prune_for_point(), and replay_call_summary().
| ana::program_state::program_state | ( | const program_state & | other | ) |
References program_state().
| ana::program_state::program_state | ( | program_state && | other | ) |
References program_state().
| ana::program_state::~program_state | ( | ) |
| bool ana::program_state::can_merge_with_p | ( | const program_state & | other, |
| const extrinsic_state & | ext_state, | ||
| const program_point & | point, | ||
| program_state * | out ) const |
References program_state().
| bool ana::program_state::can_purge_base_region_p | ( | const extrinsic_state & | ext_state, |
| const region * | base_reg ) const |
|
inline |
References ana::state_machine::can_purge_p(), FOR_EACH_VEC_ELT, ana::sm_state_map::get_state(), i, and m_checker_states.
|
static |
References program_state().
| void ana::program_state::dump | ( | ) | const |
| void ana::program_state::dump | ( | const extrinsic_state & | ext_state, |
| bool | simple ) const |
| void ana::program_state::dump_dot | ( | const extrinsic_state & | ext_state | ) | const |
| void ana::program_state::dump_sarif | ( | const extrinsic_state & | ext_state | ) | const |
| void ana::program_state::dump_to_file | ( | const extrinsic_state & | ext_state, |
| bool | simple, | ||
| bool | multiline, | ||
| FILE * | outf ) const |
| void ana::program_state::dump_to_pp | ( | const extrinsic_state & | ext_state, |
| bool | simple, | ||
| bool | multiline, | ||
| pretty_printer * | pp ) const |
| const function * ana::program_state::get_current_function | ( | ) | const |
| hashval_t ana::program_state::hash | ( | ) | const |
| void ana::program_state::impl_call_analyzer_dump_state | ( | const gcall & | call, |
| const extrinsic_state & | ext_state, | ||
| region_model_context * | ctxt ) |
| std::unique_ptr< diagnostics::digraphs::digraph > ana::program_state::make_diagnostic_state_graph | ( | const extrinsic_state & | ext_state | ) | const |
| std::unique_ptr< text_art::tree_widget > ana::program_state::make_dump_widget | ( | const text_art::dump_widget_info & | dwi | ) | const |
|
inline |
References program_state().
| program_state & ana::program_state::operator= | ( | const program_state & | other | ) |
References program_state().
| bool ana::program_state::operator== | ( | const program_state & | other | ) | const |
References program_state().
| void ana::program_state::print | ( | const extrinsic_state & | ext_state, |
| pretty_printer * | pp ) const |
| program_state ana::program_state::prune_for_point | ( | exploded_graph & | eg, |
| const program_point & | point, | ||
| exploded_node * | enode_for_diag, | ||
| uncertainty_t * | uncertainty ) const |
References program_state().
| void ana::program_state::push_frame | ( | const extrinsic_state & | ext_state, |
| const function & | fun ) |
| bool ana::program_state::replay_call_summary | ( | call_summary_replay & | r, |
| const program_state & | summary ) |
References program_state(), and r.
| std::unique_ptr< json::object > ana::program_state::to_json | ( | const extrinsic_state & | ext_state | ) | const |
| void ana::program_state::validate | ( | const extrinsic_state & | ext_state | ) | const |
| auto_delete_vec<sm_state_map> ana::program_state::m_checker_states |
Referenced by can_purge_p().
| region_model* ana::program_state::m_region_model |
Referenced by starts_infinite_loop_p(), sufficiently_different_p(), and sufficiently_different_region_binding_p().
| bool ana::program_state::m_valid |