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

#include <svalue.h>

Inheritance diagram for ana::initial_svalue:
Collaboration diagram for ana::initial_svalue:

Public Types

typedef unsigned id_t
 

Public Member Functions

 initial_svalue (symbol::id_t id, tree type, const region *reg)
 
enum svalue_kind get_kind () const final override
 
const initial_svaluedyn_cast_initial_svalue () const final override
 
void dump_to_pp (pretty_printer *pp, bool simple) const final override
 
void accept (visitor *v) const final override
 
bool implicitly_live_p (const svalue_set *, const region_model *) const final override
 
bool initial_value_of_param_p () const
 
const regionget_region () const
 
tree get_type () const
 
void print (const region_model &model, pretty_printer *pp) const
 
void dump (bool simple=true) const
 
label_text get_desc (bool simple=true) const
 
json::valueto_json () const
 
virtual const region_svaluedyn_cast_region_svalue () const
 
virtual const constant_svaluedyn_cast_constant_svalue () const
 
virtual const poisoned_svaluedyn_cast_poisoned_svalue () const
 
virtual const setjmp_svaluedyn_cast_setjmp_svalue () const
 
virtual const unaryop_svaluedyn_cast_unaryop_svalue () const
 
virtual const binop_svaluedyn_cast_binop_svalue () const
 
virtual const sub_svaluedyn_cast_sub_svalue () const
 
virtual const repeated_svaluedyn_cast_repeated_svalue () const
 
virtual const bits_within_svaluedyn_cast_bits_within_svalue () const
 
virtual const unmergeable_svaluedyn_cast_unmergeable_svalue () const
 
virtual const widening_svaluedyn_cast_widening_svalue () const
 
virtual const compound_svaluedyn_cast_compound_svalue () const
 
virtual const conjured_svaluedyn_cast_conjured_svalue () const
 
virtual const asm_output_svaluedyn_cast_asm_output_svalue () const
 
virtual const const_fn_result_svaluedyn_cast_const_fn_result_svalue () const
 
tree maybe_get_constant () const
 
const regionmaybe_get_region () const
 
const svaluemaybe_undo_cast () const
 
const svalueunwrap_any_unmergeable () const
 
const svaluecan_merge_p (const svalue *other, region_model_manager *mgr, model_merger *merger) const
 
bool live_p (const svalue_set *live_svalues, const region_model *model) const
 
bool involves_p (const svalue *other) const
 
const svalueextract_bit_range (tree type, const bit_range &subrange, region_model_manager *mgr) const
 
virtual const svaluemaybe_fold_bits_within (tree type, const bit_range &subrange, region_model_manager *mgr) const
 
virtual bool all_zeroes_p () const
 
virtual bool can_have_associated_state_p () const
 
const regionmaybe_get_deref_base_region () const
 
bool maybe_print_for_user (pretty_printer *pp, const region_model &model, const svalue *outer_sval=nullptr) const
 
const complexityget_complexity () const
 
id_t get_id () const
 

Static Public Member Functions

static int cmp_ptr (const svalue *, const svalue *)
 
static int cmp_ptr_ptr (const void *, const void *)
 
static int cmp_ids (const symbol *s1, const symbol *s2)
 

Private Attributes

const regionm_reg
 
tree m_type
 
complexity m_complexity
 
id_t m_id
 

Detailed Description

Concrete subclass of svalue representing the initial value of a
specific region.

This represents the initial value at the start of the analysis path,
as opposed to the first time the region is accessed during the path.
Hence as soon as we have a call to an unknown function, all previously
unmodelled globals become implicitly "unknown" rathen than "initial".   

Member Typedef Documentation

◆ id_t

Constructor & Destructor Documentation

◆ initial_svalue()

ana::initial_svalue::initial_svalue ( symbol::id_t id,
tree type,
const region * reg )
inline

References gcc_assert, and NULL.

Member Function Documentation

◆ accept()

void ana::initial_svalue::accept ( visitor * v) const
finaloverridevirtual

Implements ana::svalue.

◆ all_zeroes_p()

virtual bool ana::svalue::all_zeroes_p ( ) const
virtualinherited

◆ can_have_associated_state_p()

virtual bool ana::svalue::can_have_associated_state_p ( ) const
inlinevirtualinherited

◆ can_merge_p()

const svalue * ana::svalue::can_merge_p ( const svalue * other,
region_model_manager * mgr,
model_merger * merger ) const
inherited

◆ cmp_ids()

static int ana::symbol::cmp_ids ( const symbol * s1,
const symbol * s2 )
staticinherited

◆ cmp_ptr()

static int ana::svalue::cmp_ptr ( const svalue * ,
const svalue *  )
staticinherited

◆ cmp_ptr_ptr()

static int ana::svalue::cmp_ptr_ptr ( const void * ,
const void *  )
staticinherited

◆ dump()

void ana::svalue::dump ( bool simple = true) const
inherited

◆ dump_to_pp()

void ana::initial_svalue::dump_to_pp ( pretty_printer * pp,
bool simple ) const
finaloverridevirtual

Implements ana::svalue.

◆ dyn_cast_asm_output_svalue()

virtual const asm_output_svalue * ana::svalue::dyn_cast_asm_output_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::asm_output_svalue.

References NULL.

◆ dyn_cast_binop_svalue()

virtual const binop_svalue * ana::svalue::dyn_cast_binop_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::binop_svalue.

References NULL.

◆ dyn_cast_bits_within_svalue()

virtual const bits_within_svalue * ana::svalue::dyn_cast_bits_within_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::bits_within_svalue.

References NULL.

◆ dyn_cast_compound_svalue()

virtual const compound_svalue * ana::svalue::dyn_cast_compound_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::compound_svalue.

References NULL.

Referenced by contains_unknown_p().

◆ dyn_cast_conjured_svalue()

virtual const conjured_svalue * ana::svalue::dyn_cast_conjured_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::conjured_svalue.

References NULL.

◆ dyn_cast_const_fn_result_svalue()

virtual const const_fn_result_svalue * ana::svalue::dyn_cast_const_fn_result_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::const_fn_result_svalue.

References NULL.

◆ dyn_cast_constant_svalue()

virtual const constant_svalue * ana::svalue::dyn_cast_constant_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::constant_svalue.

References NULL.

◆ dyn_cast_initial_svalue()

const initial_svalue * ana::initial_svalue::dyn_cast_initial_svalue ( ) const
inlinefinaloverridevirtual

Reimplemented from ana::svalue.

◆ dyn_cast_poisoned_svalue()

virtual const poisoned_svalue * ana::svalue::dyn_cast_poisoned_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::poisoned_svalue.

References NULL.

◆ dyn_cast_region_svalue()

virtual const region_svalue * ana::svalue::dyn_cast_region_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::region_svalue.

References NULL.

◆ dyn_cast_repeated_svalue()

virtual const repeated_svalue * ana::svalue::dyn_cast_repeated_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::repeated_svalue.

References NULL.

◆ dyn_cast_setjmp_svalue()

virtual const setjmp_svalue * ana::svalue::dyn_cast_setjmp_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::setjmp_svalue.

References NULL.

◆ dyn_cast_sub_svalue()

virtual const sub_svalue * ana::svalue::dyn_cast_sub_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::sub_svalue.

References NULL.

◆ dyn_cast_unaryop_svalue()

virtual const unaryop_svalue * ana::svalue::dyn_cast_unaryop_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::unaryop_svalue.

References NULL.

◆ dyn_cast_unmergeable_svalue()

virtual const unmergeable_svalue * ana::svalue::dyn_cast_unmergeable_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::unmergeable_svalue.

References NULL.

◆ dyn_cast_widening_svalue()

virtual const widening_svalue * ana::svalue::dyn_cast_widening_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::widening_svalue.

References NULL.

◆ extract_bit_range()

const svalue * ana::svalue::extract_bit_range ( tree type,
const bit_range & subrange,
region_model_manager * mgr ) const
inherited

◆ get_complexity()

const complexity & ana::symbol::get_complexity ( ) const
inlineinherited

◆ get_desc()

label_text ana::svalue::get_desc ( bool simple = true) const
inherited

◆ get_id()

id_t ana::symbol::get_id ( ) const
inlineinherited

References ana::symbol::m_id.

◆ get_kind()

enum svalue_kind ana::initial_svalue::get_kind ( ) const
inlinefinaloverridevirtual

Implements ana::svalue.

References ana::SK_INITIAL.

◆ get_region()

const region * ana::initial_svalue::get_region ( ) const
inline

◆ get_type()

tree ana::svalue::get_type ( ) const
inlineinherited

References ana::svalue::m_type.

◆ implicitly_live_p()

bool ana::initial_svalue::implicitly_live_p ( const svalue_set * ,
const region_model *  ) const
finaloverridevirtual

Reimplemented from ana::svalue.

◆ initial_value_of_param_p()

bool ana::initial_svalue::initial_value_of_param_p ( ) const

◆ involves_p()

bool ana::svalue::involves_p ( const svalue * other) const
inherited

◆ live_p()

bool ana::svalue::live_p ( const svalue_set * live_svalues,
const region_model * model ) const
inherited

◆ maybe_fold_bits_within()

virtual const svalue * ana::svalue::maybe_fold_bits_within ( tree type,
const bit_range & subrange,
region_model_manager * mgr ) const
virtualinherited

◆ maybe_get_constant()

tree ana::svalue::maybe_get_constant ( ) const
inherited

◆ maybe_get_deref_base_region()

const region * ana::svalue::maybe_get_deref_base_region ( ) const
inherited

◆ maybe_get_region()

const region * ana::svalue::maybe_get_region ( ) const
inherited

◆ maybe_print_for_user()

bool ana::svalue::maybe_print_for_user ( pretty_printer * pp,
const region_model & model,
const svalue * outer_sval = nullptr ) const
inherited

◆ maybe_undo_cast()

const svalue * ana::svalue::maybe_undo_cast ( ) const
inherited

◆ print()

void ana::svalue::print ( const region_model & model,
pretty_printer * pp ) const
inherited

◆ to_json()

json::value * ana::svalue::to_json ( ) const
inherited

◆ unwrap_any_unmergeable()

const svalue * ana::svalue::unwrap_any_unmergeable ( ) const
inherited

Field Documentation

◆ m_complexity

complexity ana::symbol::m_complexity
privateinherited

◆ m_id

id_t ana::symbol::m_id
privateinherited

Referenced by ana::symbol::get_id().

◆ m_reg

const region* ana::initial_svalue::m_reg
private

◆ m_type

tree ana::svalue::m_type
privateinherited

Referenced by ana::svalue::get_type().


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