GCC Middle and Back End API Reference
|
#include <region-model.h>
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 logger * | get_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_t * | get_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_state * | get_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 gimple * | get_stmt () const =0 |
virtual const exploded_graph * | get_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 |
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.
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::add_note().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::bifurcate().
|
pure virtual |
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::get_eg().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::get_ext_state().
|
inline |
References get_state_map_by_name().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::get_logger().
|
inline |
References get_state_map_by_name(), and NULL.
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by get_fd_map(), get_malloc_map(), ana::region_model_context_decorator::get_state_map_by_name(), and get_taint_map().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::get_stmt().
|
inline |
References get_state_map_by_name(), and NULL.
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::get_uncertainty().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::maybe_did_work().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_bounded_ranges().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_condition().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_escaped_function().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_liveness_change().
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_phi().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_pop_frame().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_svalue_leak().
|
pure virtual |
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::on_unknown_change().
|
pure virtual |
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::purge_state_involving().
|
pure virtual |
Implemented in ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::region_model_context_decorator::terminate_path().
|
pure virtual |
Implemented in ana::annotating_context, ana::impl_region_model_context, ana::noop_region_model_context, and ana::region_model_context_decorator.
Referenced by ana::annotating_context::warn(), and ana::region_model_context_decorator::warn().