#include <region.h>
Data Structures | |
struct | key_t |
Public Types | |
typedef unsigned | id_t |
Static Public Member Functions | |
static int | cmp_ptr_ptr (const void *, const void *) |
static int | cmp_ids (const symbol *s1, const symbol *s2) |
Private Types | |
typedef hash_map< tree, decl_region * > | map_t |
Private Member Functions | |
region_offset | calc_offset (region_model_manager *mgr) const |
const svalue * | calc_initial_value_at_main (region_model_manager *mgr) const |
virtual void | add_dump_widget_children (text_art::tree_widget &, const text_art::dump_widget_info &dwi) const |
Private Attributes | |
const frame_region * | m_calling_frame |
const function & | m_fun |
int | m_index |
map_t | m_locals |
const region * | m_parent |
tree | m_type |
region_offset * | m_cached_offset |
const svalue * | m_cached_init_sval_at_main |
complexity | m_complexity |
id_t | m_id |
Concrete space_region subclass, representing a function frame on the stack, to contain the locals. The parent is the stack region; there's also a hierarchy of call-stack prefixes expressed via m_calling_frame. For example, given "oldest" calling "middle" called "newest" we would have - a stack depth of 3 - frame (A) for "oldest" with index 0 for depth 1, calling_frame == NULL - frame (B) for "middle" with index 1 for depth 2, calling_frame == (A) - frame (C) for "newest" with index 2 for depth 3, calling_frame == (B) where the parent region for each of the frames is the "stack" region. The index is the count of frames earlier than this in the stack.
|
inherited |
|
private |
|
inline |
References frame_region(), m_calling_frame, m_fun, m_index, and ana::space_region::space_region().
Referenced by dyn_cast_frame_region(), frame_region(), get_calling_frame(), and ana::frame_region::key_t::key_t().
ana::frame_region::~frame_region | ( | ) |
|
finaloverridevirtual |
Reimplemented from ana::region.
|
privatevirtualinherited |
Reimplemented in ana::element_region, ana::offset_region, ana::sized_region, and ana::symbolic_region.
|
inherited |
|
privateinherited |
|
privateinherited |
|
inherited |
References symbol().
|
staticinherited |
|
inherited |
|
inherited |
|
finaloverridevirtual |
Implements ana::region.
void ana::frame_region::dump_untracked_regions | ( | ) | const |
|
inlinevirtualinherited |
Reimplemented in ana::bit_range_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::cast_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::decl_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::element_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::field_region.
References NULL.
|
inlinefinaloverridevirtual |
Reimplemented from ana::region.
References final(), and frame_region().
|
inlinevirtualinherited |
Reimplemented in ana::function_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::offset_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::sized_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::string_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::symbolic_region.
References NULL.
|
inlinevirtualinherited |
Reimplemented in ana::var_arg_region.
References NULL.
|
inherited |
|
virtualinherited |
Reimplemented in ana::bit_range_region, and ana::sized_region.
|
virtualinherited |
Reimplemented in ana::bit_range_region, and ana::sized_region.
|
virtualinherited |
Reimplemented in ana::bit_range_region, and ana::sized_region.
|
virtualinherited |
Reimplemented in ana::bit_range_region, and ana::sized_region.
|
inline |
References frame_region(), and m_calling_frame.
|
inlineinherited |
References m_complexity.
Referenced by ana::binop_svalue::binop_svalue(), and ana::widening_svalue::widening_svalue().
|
inline |
References function::decl, and get_function().
|
inline |
References m_fun.
Referenced by get_fndecl().
|
inline |
References m_index.
|
inherited |
|
inlinefinaloverridevirtual |
Implements ana::region.
References final(), and ana::RK_FRAME.
|
inherited |
|
inherited |
|
inline |
References m_locals.
|
inherited |
|
inlineinherited |
References m_parent, and region().
Referenced by remap_enclosing_frame().
const decl_region * ana::frame_region::get_region_for_local | ( | region_model_manager * | mgr, |
tree | expr, | ||
const region_model_context * | ctxt ) const |
Referenced by remap_enclosing_frame().
|
inherited |
|
virtualinherited |
Reimplemented in ana::bit_range_region, ana::cast_region, ana::element_region, ana::field_region, and ana::offset_region.
|
virtualinherited |
Reimplemented in ana::bit_range_region, ana::element_region, ana::field_region, and ana::offset_region.
|
inline |
References m_index.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Referenced by sufficiently_different_region_binding_p().
|
inherited |
|
inherited |
|
inherited |
|
finaloverridevirtual |
Implements ana::region.
|
inherited |
|
inherited |
|
inherited |
|
inlinevirtualinherited |
Reimplemented in ana::decl_region, and ana::string_region.
|
mutableprivateinherited |
|
mutableprivateinherited |
|
private |
Referenced by frame_region(), and get_calling_frame().
|
privateinherited |
Referenced by get_complexity(), and symbol().
|
private |
Referenced by frame_region(), and get_function().
|
private |
Referenced by frame_region(), get_index(), and get_stack_depth().
|
private |
Referenced by get_num_locals().
|
privateinherited |
Referenced by get_parent_region().
|
privateinherited |
Referenced by get_type().