GCC Middle and Back End API Reference
ana::impl_sm_context Class Reference

#include <impl-sm-context.h>

Inheritance diagram for ana::impl_sm_context:
Collaboration diagram for ana::impl_sm_context:

Public Member Functions

 impl_sm_context (exploded_graph &eg, int sm_idx, const state_machine &sm, exploded_node *enode_for_diag, const program_state *old_state, program_state *new_state, const sm_state_map *old_smap, sm_state_map *new_smap, path_context *path_ctxt, bool unknown_side_effects=false)
loggerget_logger () const
tree get_fndecl_for_call (const gcall &call) final override
state_machine::state_t get_state (tree var) final override
state_machine::state_t get_state (const svalue *sval) final override
void set_next_state (tree var, state_machine::state_t to, tree origin) final override
void set_next_state (const svalue *sval, state_machine::state_t to, tree origin) final override
void warn (tree var, std::unique_ptr< pending_diagnostic > d) final override
void warn (const svalue *sval, std::unique_ptr< pending_diagnostic > d) final override
tree get_diagnostic_tree (tree expr) final override
tree get_diagnostic_tree (const svalue *sval) final override
state_machine::state_t get_global_state () const final override
void set_global_state (state_machine::state_t state) final override
void clear_all_per_svalue_state () final override
void on_custom_transition (custom_transition *transition) final override
tree is_zero_assignment (const gimple *stmt) final override
path_contextget_path_context () const final override
bool unknown_side_effects_p () const final override
const program_stateget_old_program_state () const final override
const program_stateget_new_program_state () const final override
location_t get_emission_location () const final override
void on_transition (tree var, state_machine::state_t from, state_machine::state_t to, tree origin=NULL_TREE)
void on_transition (const svalue *var, state_machine::state_t from, state_machine::state_t to, tree origin=NULL_TREE)
const region_modelget_old_region_model () const

Data Fields

log_user m_logger
exploded_graphm_eg
exploded_nodem_enode_for_diag
const program_statem_old_state
program_statem_new_state
const sm_state_mapm_old_smap
sm_state_mapm_new_smap
path_contextm_path_ctxt
bool m_unknown_side_effects

Protected Attributes

int m_sm_idx
const state_machinem_sm

Detailed Description

Concrete implementation of sm_context, wiring it up to the rest of this
file.   

Constructor & Destructor Documentation

◆ impl_sm_context()

ana::impl_sm_context::impl_sm_context ( exploded_graph & eg,
int sm_idx,
const state_machine & sm,
exploded_node * enode_for_diag,
const program_state * old_state,
program_state * new_state,
const sm_state_map * old_smap,
sm_state_map * new_smap,
path_context * path_ctxt,
bool unknown_side_effects = false )
inline

Member Function Documentation

◆ clear_all_per_svalue_state()

void ana::impl_sm_context::clear_all_per_svalue_state ( )
inlinefinaloverridevirtual

◆ get_diagnostic_tree() [1/2]

tree ana::impl_sm_context::get_diagnostic_tree ( const svalue * sval)
inlinefinaloverridevirtual

Implements ana::sm_context.

References m_new_state.

◆ get_diagnostic_tree() [2/2]

tree ana::impl_sm_context::get_diagnostic_tree ( tree expr)
inlinefinaloverridevirtual

Reimplemented from ana::sm_context.

References gcc_assert, m_new_state, NULL, SSA_NAME_VAR, and TREE_CODE.

◆ get_emission_location()

location_t ana::impl_sm_context::get_emission_location ( ) const
inlinefinaloverridevirtual

◆ get_fndecl_for_call()

tree ana::impl_sm_context::get_fndecl_for_call ( const gcall & call)
inlinefinaloverridevirtual

◆ get_global_state()

state_machine::state_t ana::impl_sm_context::get_global_state ( ) const
inlinefinaloverridevirtual

◆ get_logger()

logger * ana::impl_sm_context::get_logger ( ) const
inline

◆ get_new_program_state()

const program_state * ana::impl_sm_context::get_new_program_state ( ) const
inlinefinaloverridevirtual

Implements ana::sm_context.

References final(), and m_new_state.

◆ get_old_program_state()

const program_state * ana::impl_sm_context::get_old_program_state ( ) const
inlinefinaloverridevirtual

Implements ana::sm_context.

References final(), and m_old_state.

◆ get_old_region_model()

const region_model * ana::sm_context::get_old_region_model ( ) const
inherited

◆ get_path_context()

path_context * ana::impl_sm_context::get_path_context ( ) const
inlinefinaloverridevirtual

Reimplemented from ana::sm_context.

References final(), and m_path_ctxt.

◆ get_state() [1/2]

state_machine::state_t ana::impl_sm_context::get_state ( const svalue * sval)
inlinefinaloverridevirtual

Implements ana::sm_context.

References get_logger(), LOG_FUNC, m_eg, and m_old_smap.

◆ get_state() [2/2]

state_machine::state_t ana::impl_sm_context::get_state ( tree var)
inlinefinaloverridevirtual

◆ is_zero_assignment()

tree ana::impl_sm_context::is_zero_assignment ( const gimple * stmt)
inlinefinaloverridevirtual

◆ on_custom_transition()

void ana::impl_sm_context::on_custom_transition ( custom_transition * transition)
inlinefinaloverridevirtual

◆ on_transition() [1/2]

void ana::sm_context::on_transition ( const svalue * var,
state_machine::state_t from,
state_machine::state_t to,
tree origin = NULL_TREE )
inlineinherited

◆ on_transition() [2/2]

void ana::sm_context::on_transition ( tree var,
state_machine::state_t from,
state_machine::state_t to,
tree origin = NULL_TREE )
inlineinherited

◆ set_global_state()

void ana::impl_sm_context::set_global_state ( state_machine::state_t state)
inlinefinaloverridevirtual

◆ set_next_state() [1/2]

◆ set_next_state() [2/2]

void ana::impl_sm_context::set_next_state ( tree var,
state_machine::state_t to,
tree origin )
inlinefinaloverridevirtual

◆ unknown_side_effects_p()

bool ana::impl_sm_context::unknown_side_effects_p ( ) const
inlinefinaloverridevirtual

Reimplemented from ana::sm_context.

References final(), and m_unknown_side_effects.

◆ warn() [1/2]

void ana::impl_sm_context::warn ( const svalue * sval,
std::unique_ptr< pending_diagnostic > d )
inlinefinaloverridevirtual

◆ warn() [2/2]

void ana::impl_sm_context::warn ( tree var,
std::unique_ptr< pending_diagnostic > d )
inlinefinaloverridevirtual

Field Documentation

◆ m_eg

◆ m_enode_for_diag

◆ m_logger

log_user ana::impl_sm_context::m_logger

Referenced by get_logger(), and impl_sm_context().

◆ m_new_smap

sm_state_map* ana::impl_sm_context::m_new_smap

◆ m_new_state

◆ m_old_smap

const sm_state_map* ana::impl_sm_context::m_old_smap

◆ m_old_state

const program_state* ana::impl_sm_context::m_old_state

◆ m_path_ctxt

path_context* ana::impl_sm_context::m_path_ctxt

◆ m_sm

◆ m_sm_idx

◆ m_unknown_side_effects

bool ana::impl_sm_context::m_unknown_side_effects

The documentation for this class was generated from the following file: