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

#include <exploded-graph.h>

Inheritance diagram for ana::impl_region_model_context:
Collaboration diagram for ana::impl_region_model_context:

Public Member Functions

 impl_region_model_context (exploded_graph &eg, exploded_node *enode_for_diag, const program_state *old_state, program_state *new_state, uncertainty_t *uncertainty, path_context *path_ctxt, const gimple *stmt, stmt_finder *stmt_finder=NULL, bool *out_could_have_done_work=nullptr)
 
 impl_region_model_context (program_state *state, const extrinsic_state &ext_state, uncertainty_t *uncertainty, logger *logger=NULL)
 
bool warn (std::unique_ptr< pending_diagnostic > d, const stmt_finder *custom_finder=NULL) final override
 
void add_note (std::unique_ptr< pending_note > pn) final override
 
void add_event (std::unique_ptr< checker_event > event) final override
 
void on_svalue_leak (const svalue *) override
 
void on_liveness_change (const svalue_set &live_svalues, const region_model *model) final override
 
loggerget_logger () final override
 
void on_state_leak (const state_machine &sm, const svalue *sval, state_machine::state_t state)
 
void on_condition (const svalue *lhs, enum tree_code op, const svalue *rhs) final override
 
void on_bounded_ranges (const svalue &sval, const bounded_ranges &ranges) final override
 
void on_pop_frame (const frame_region *frame_reg) final override
 
void on_unknown_change (const svalue *sval, bool is_mutable) final override
 
void on_phi (const gphi *phi, tree rhs) final override
 
void on_unexpected_tree_code (tree t, const dump_location_t &loc) final override
 
void on_escaped_function (tree fndecl) final override
 
uncertainty_tget_uncertainty () final override
 
void purge_state_involving (const svalue *sval) final override
 
void bifurcate (std::unique_ptr< custom_edge_info > info) final override
 
void terminate_path () final override
 
const extrinsic_stateget_ext_state () const final override
 
bool get_state_map_by_name (const char *name, sm_state_map **out_smap, const state_machine **out_sm, unsigned *out_sm_idx, std::unique_ptr< sm_context > *out_sm_context) override
 
const gimpleget_stmt () const override
 
const exploded_graphget_eg () const override
 
void maybe_did_work () override
 
bool checking_for_infinite_loop_p () const override
 
void on_unusable_in_infinite_loop () override
 
bool get_fd_map (sm_state_map **out_smap, const state_machine **out_sm, unsigned *out_sm_idx, std::unique_ptr< sm_context > *out_sm_context)
 
bool get_malloc_map (sm_state_map **out_smap, const state_machine **out_sm, unsigned *out_sm_idx)
 
bool get_taint_map (sm_state_map **out_smap, const state_machine **out_sm, unsigned *out_sm_idx)
 
bool possibly_tainted_p (const svalue *sval)
 

Data Fields

exploded_graphm_eg
 
log_user m_logger
 
exploded_nodem_enode_for_diag
 
const program_statem_old_state
 
program_statem_new_state
 
const gimplem_stmt
 
stmt_finderm_stmt_finder
 
const extrinsic_statem_ext_state
 
uncertainty_tm_uncertainty
 
path_contextm_path_ctxt
 
boolm_out_could_have_done_work
 

Detailed Description

Concrete implementation of region_model_context, wiring it up to the
rest of the analysis engine.   

Constructor & Destructor Documentation

◆ impl_region_model_context() [1/2]

ana::impl_region_model_context::impl_region_model_context ( exploded_graph & eg,
exploded_node * enode_for_diag,
const program_state * old_state,
program_state * new_state,
uncertainty_t * uncertainty,
path_context * path_ctxt,
const gimple * stmt,
stmt_finder * stmt_finder = NULL,
bool * out_could_have_done_work = nullptr )

◆ impl_region_model_context() [2/2]

ana::impl_region_model_context::impl_region_model_context ( program_state * state,
const extrinsic_state & ext_state,
uncertainty_t * uncertainty,
logger * logger = NULL )

Member Function Documentation

◆ add_event()

void ana::impl_region_model_context::add_event ( std::unique_ptr< checker_event > event)
finaloverridevirtual

◆ add_note()

void ana::impl_region_model_context::add_note ( std::unique_ptr< pending_note > pn)
finaloverridevirtual

◆ bifurcate()

void ana::impl_region_model_context::bifurcate ( std::unique_ptr< custom_edge_info > info)
finaloverridevirtual

◆ checking_for_infinite_loop_p()

bool ana::impl_region_model_context::checking_for_infinite_loop_p ( ) const
inlineoverridevirtual

◆ get_eg()

const exploded_graph * ana::impl_region_model_context::get_eg ( ) const
inlineoverridevirtual

Implements ana::region_model_context.

References m_eg.

◆ get_ext_state()

const extrinsic_state * ana::impl_region_model_context::get_ext_state ( ) const
inlinefinaloverridevirtual

Implements ana::region_model_context.

References m_ext_state.

◆ get_fd_map()

bool ana::region_model_context::get_fd_map ( sm_state_map ** out_smap,
const state_machine ** out_sm,
unsigned * out_sm_idx,
std::unique_ptr< sm_context > * out_sm_context )
inlineinherited

◆ get_logger()

logger * ana::impl_region_model_context::get_logger ( )
inlinefinaloverridevirtual

◆ get_malloc_map()

bool ana::region_model_context::get_malloc_map ( sm_state_map ** out_smap,
const state_machine ** out_sm,
unsigned * out_sm_idx )
inlineinherited

◆ get_state_map_by_name()

bool ana::impl_region_model_context::get_state_map_by_name ( const char * name,
sm_state_map ** out_smap,
const state_machine ** out_sm,
unsigned * out_sm_idx,
std::unique_ptr< sm_context > * out_sm_context )
overridevirtual

◆ get_stmt()

const gimple * ana::impl_region_model_context::get_stmt ( ) const
inlineoverridevirtual

Implements ana::region_model_context.

References m_stmt.

◆ get_taint_map()

bool ana::region_model_context::get_taint_map ( sm_state_map ** out_smap,
const state_machine ** out_sm,
unsigned * out_sm_idx )
inlineinherited

◆ get_uncertainty()

uncertainty_t * ana::impl_region_model_context::get_uncertainty ( )
finaloverridevirtual

◆ maybe_did_work()

void ana::impl_region_model_context::maybe_did_work ( )
overridevirtual

◆ on_bounded_ranges()

void ana::impl_region_model_context::on_bounded_ranges ( const svalue & sval,
const bounded_ranges & ranges )
finaloverridevirtual

◆ on_condition()

void ana::impl_region_model_context::on_condition ( const svalue * lhs,
enum tree_code op,
const svalue * rhs )
finaloverridevirtual

◆ on_escaped_function()

void ana::impl_region_model_context::on_escaped_function ( tree fndecl)
finaloverridevirtual

◆ on_liveness_change()

void ana::impl_region_model_context::on_liveness_change ( const svalue_set & live_svalues,
const region_model * model )
finaloverridevirtual

◆ on_phi()

void ana::impl_region_model_context::on_phi ( const gphi * phi,
tree rhs )
finaloverridevirtual

◆ on_pop_frame()

void ana::impl_region_model_context::on_pop_frame ( const frame_region * frame_reg)
finaloverridevirtual

◆ on_state_leak()

void ana::impl_region_model_context::on_state_leak ( const state_machine & sm,
const svalue * sval,
state_machine::state_t state )

◆ on_svalue_leak()

void ana::impl_region_model_context::on_svalue_leak ( const svalue * )
overridevirtual

◆ on_unexpected_tree_code()

void ana::impl_region_model_context::on_unexpected_tree_code ( tree t,
const dump_location_t & loc )
finaloverridevirtual

◆ on_unknown_change()

void ana::impl_region_model_context::on_unknown_change ( const svalue * sval,
bool is_mutable )
finaloverridevirtual

◆ on_unusable_in_infinite_loop()

void ana::impl_region_model_context::on_unusable_in_infinite_loop ( )
inlineoverridevirtual

◆ possibly_tainted_p()

bool ana::region_model_context::possibly_tainted_p ( const svalue * sval)
inherited

◆ purge_state_involving()

void ana::impl_region_model_context::purge_state_involving ( const svalue * sval)
finaloverridevirtual

◆ terminate_path()

void ana::impl_region_model_context::terminate_path ( )
finaloverridevirtual

◆ warn()

bool ana::impl_region_model_context::warn ( std::unique_ptr< pending_diagnostic > d,
const stmt_finder * custom_finder = NULL )
finaloverridevirtual

Field Documentation

◆ m_eg

exploded_graph* ana::impl_region_model_context::m_eg

Referenced by get_eg().

◆ m_enode_for_diag

exploded_node* ana::impl_region_model_context::m_enode_for_diag

◆ m_ext_state

const extrinsic_state& ana::impl_region_model_context::m_ext_state

Referenced by get_ext_state().

◆ m_logger

log_user ana::impl_region_model_context::m_logger

Referenced by get_logger().

◆ m_new_state

program_state* ana::impl_region_model_context::m_new_state

◆ m_old_state

const program_state* ana::impl_region_model_context::m_old_state

◆ m_out_could_have_done_work

bool* ana::impl_region_model_context::m_out_could_have_done_work

◆ m_path_ctxt

path_context* ana::impl_region_model_context::m_path_ctxt

◆ m_stmt

const gimple* ana::impl_region_model_context::m_stmt

Referenced by get_stmt().

◆ m_stmt_finder

stmt_finder* ana::impl_region_model_context::m_stmt_finder

◆ m_uncertainty

uncertainty_t* ana::impl_region_model_context::m_uncertainty

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