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

#include <region-model-reachability.h>

Collaboration diagram for ana::reachable_regions:

Public Member Functions

 reachable_regions (region_model *model)
 
void init_cluster (const region *base_reg)
 
void add (const region *reg, bool is_mutable)
 
void handle_sval (const svalue *sval)
 
void handle_parm (const svalue *sval, tree param_type)
 
void mark_escaped_clusters (region_model_context *ctxt)
 
hash_set< constregion * >::iterator begin ()
 
hash_set< constregion * >::iterator end ()
 
svalue_set::iterator begin_reachable_svals ()
 
svalue_set::iterator end_reachable_svals ()
 
svalue_set::iterator begin_mutable_svals ()
 
svalue_set::iterator end_mutable_svals ()
 
hash_set< constregion * >::iterator begin_mutable_base_regs ()
 
hash_set< constregion * >::iterator end_mutable_base_regs ()
 
void dump_to_pp (pretty_printer *pp) const
 
DEBUG_FUNCTION void dump () const
 

Static Public Member Functions

static void init_cluster_cb (const region *base_reg, reachable_regions *this_ptr)
 
static void handle_sval_cb (const svalue *sval, reachable_regions *this_ptr)
 

Private Attributes

region_modelm_model
 
storem_store
 
hash_set< const region * > m_reachable_base_regs
 
hash_set< const region * > m_mutable_base_regs
 
svalue_set m_reachable_svals
 
svalue_set m_mutable_svals
 

Detailed Description

A class for determining which regions and svalues are reachable.

Used by region_model::handle_unrecognized_call for keeping
track of all regions that are reachable, and, of those, which are
mutable.

Used by program_state::detect_leaks
(via region_model::get_reachable_svalues) for detecting leaks.   

Constructor & Destructor Documentation

◆ reachable_regions()

ana::reachable_regions::reachable_regions ( region_model * model)

Member Function Documentation

◆ add()

void ana::reachable_regions::add ( const region * reg,
bool is_mutable )

◆ begin()

hash_set< constregion * >::iterator ana::reachable_regions::begin ( )
inline

References m_reachable_base_regs.

◆ begin_mutable_base_regs()

hash_set< constregion * >::iterator ana::reachable_regions::begin_mutable_base_regs ( )
inline

References m_mutable_base_regs.

◆ begin_mutable_svals()

svalue_set::iterator ana::reachable_regions::begin_mutable_svals ( )
inline

◆ begin_reachable_svals()

svalue_set::iterator ana::reachable_regions::begin_reachable_svals ( )
inline

◆ dump()

DEBUG_FUNCTION void ana::reachable_regions::dump ( ) const

◆ dump_to_pp()

void ana::reachable_regions::dump_to_pp ( pretty_printer * pp) const

◆ end()

hash_set< constregion * >::iterator ana::reachable_regions::end ( )
inline

References m_reachable_base_regs.

◆ end_mutable_base_regs()

hash_set< constregion * >::iterator ana::reachable_regions::end_mutable_base_regs ( )
inline

References m_mutable_base_regs.

◆ end_mutable_svals()

svalue_set::iterator ana::reachable_regions::end_mutable_svals ( )
inline

◆ end_reachable_svals()

svalue_set::iterator ana::reachable_regions::end_reachable_svals ( )
inline

◆ handle_parm()

void ana::reachable_regions::handle_parm ( const svalue * sval,
tree param_type )

◆ handle_sval()

void ana::reachable_regions::handle_sval ( const svalue * sval)

◆ handle_sval_cb()

static void ana::reachable_regions::handle_sval_cb ( const svalue * sval,
reachable_regions * this_ptr )
static

◆ init_cluster()

void ana::reachable_regions::init_cluster ( const region * base_reg)

◆ init_cluster_cb()

static void ana::reachable_regions::init_cluster_cb ( const region * base_reg,
reachable_regions * this_ptr )
static

◆ mark_escaped_clusters()

void ana::reachable_regions::mark_escaped_clusters ( region_model_context * ctxt)

Field Documentation

◆ m_model

region_model* ana::reachable_regions::m_model
private

◆ m_mutable_base_regs

hash_set<const region *> ana::reachable_regions::m_mutable_base_regs
private

◆ m_mutable_svals

svalue_set ana::reachable_regions::m_mutable_svals
private

◆ m_reachable_base_regs

hash_set<const region *> ana::reachable_regions::m_reachable_base_regs
private

Referenced by begin(), and end().

◆ m_reachable_svals

svalue_set ana::reachable_regions::m_reachable_svals
private

◆ m_store

store* ana::reachable_regions::m_store
private

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