GCC Middle and Back End API Reference
ana::region_model_context Class Referenceabstract

#include <region-model.h>

Inheritance diagram for ana::region_model_context:

Public Member Functions

virtual bool warn (std::unique_ptr< pending_diagnostic > d, const stmt_finder *custom_finder=NULL)=0
 
virtual void add_note (std::unique_ptr< pending_note > pn)=0
 
virtual void add_event (std::unique_ptr< checker_event > event)=0
 
virtual void on_svalue_leak (const svalue *sval)=0
 
virtual void on_liveness_change (const svalue_set &live_svalues, const region_model *model)=0
 
virtual loggerget_logger ()=0
 
virtual void on_condition (const svalue *lhs, enum tree_code op, const svalue *rhs)=0
 
virtual void on_bounded_ranges (const svalue &sval, const bounded_ranges &ranges)=0
 
virtual void on_pop_frame (const frame_region *)=0
 
virtual void on_unknown_change (const svalue *sval, bool is_mutable)=0
 
virtual void on_phi (const gphi *phi, tree rhs)=0
 
virtual void on_unexpected_tree_code (tree t, const dump_location_t &loc)=0
 
virtual void on_escaped_function (tree fndecl)=0
 
virtual uncertainty_tget_uncertainty ()=0
 
virtual void purge_state_involving (const svalue *sval)=0
 
virtual void bifurcate (std::unique_ptr< custom_edge_info > info)=0
 
virtual void terminate_path ()=0
 
virtual const extrinsic_stateget_ext_state () const =0
 
virtual 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)=0
 
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)
 
virtual const gimpleget_stmt () const =0
 
virtual const exploded_graphget_eg () const =0
 
virtual void maybe_did_work ()=0
 
virtual bool checking_for_infinite_loop_p () const =0
 
virtual void on_unusable_in_infinite_loop ()=0
 

Detailed Description

Some region_model activity could lead to warnings (e.g. attempts to use an
uninitialized value).  This abstract base class encapsulates an interface
for the region model to use when emitting such warnings.

Having this as an abstract base class allows us to support the various
operations needed by program_state in the analyzer within region_model,
whilst keeping them somewhat modularized.   

Member Function Documentation

◆ add_event()

virtual void ana::region_model_context::add_event ( std::unique_ptr< checker_event > event)
pure virtual

◆ add_note()

virtual void ana::region_model_context::add_note ( std::unique_ptr< pending_note > pn)
pure virtual

◆ bifurcate()

virtual void ana::region_model_context::bifurcate ( std::unique_ptr< custom_edge_info > info)
pure virtual

◆ checking_for_infinite_loop_p()

virtual bool ana::region_model_context::checking_for_infinite_loop_p ( ) const
pure virtual

◆ get_eg()

virtual const exploded_graph * ana::region_model_context::get_eg ( ) const
pure virtual

◆ get_ext_state()

virtual const extrinsic_state * ana::region_model_context::get_ext_state ( ) const
pure virtual

◆ 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 )
inline

◆ get_logger()

virtual logger * ana::region_model_context::get_logger ( )
pure virtual

◆ 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 )
inline

References get_state_map_by_name(), and NULL.

◆ get_state_map_by_name()

virtual bool ana::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 )
pure virtual

◆ get_stmt()

virtual const gimple * ana::region_model_context::get_stmt ( ) const
pure virtual

◆ 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 )
inline

References get_state_map_by_name(), and NULL.

◆ get_uncertainty()

virtual uncertainty_t * ana::region_model_context::get_uncertainty ( )
pure virtual

◆ maybe_did_work()

virtual void ana::region_model_context::maybe_did_work ( )
pure virtual

◆ on_bounded_ranges()

virtual void ana::region_model_context::on_bounded_ranges ( const svalue & sval,
const bounded_ranges & ranges )
pure virtual

◆ on_condition()

virtual void ana::region_model_context::on_condition ( const svalue * lhs,
enum tree_code op,
const svalue * rhs )
pure virtual

◆ on_escaped_function()

virtual void ana::region_model_context::on_escaped_function ( tree fndecl)
pure virtual

◆ on_liveness_change()

virtual void ana::region_model_context::on_liveness_change ( const svalue_set & live_svalues,
const region_model * model )
pure virtual

◆ on_phi()

virtual void ana::region_model_context::on_phi ( const gphi * phi,
tree rhs )
pure virtual

◆ on_pop_frame()

virtual void ana::region_model_context::on_pop_frame ( const frame_region * )
pure virtual

◆ on_svalue_leak()

virtual void ana::region_model_context::on_svalue_leak ( const svalue * sval)
pure virtual

◆ on_unexpected_tree_code()

virtual void ana::region_model_context::on_unexpected_tree_code ( tree t,
const dump_location_t & loc )
pure virtual

◆ on_unknown_change()

virtual void ana::region_model_context::on_unknown_change ( const svalue * sval,
bool is_mutable )
pure virtual

◆ on_unusable_in_infinite_loop()

virtual void ana::region_model_context::on_unusable_in_infinite_loop ( )
pure virtual

◆ possibly_tainted_p()

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

◆ purge_state_involving()

virtual void ana::region_model_context::purge_state_involving ( const svalue * sval)
pure virtual

◆ terminate_path()

virtual void ana::region_model_context::terminate_path ( )
pure virtual

◆ warn()

virtual bool ana::region_model_context::warn ( std::unique_ptr< pending_diagnostic > d,
const stmt_finder * custom_finder = NULL )
pure virtual

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