|
virtual | ~svalue () |
|
tree | get_type () const |
|
virtual enum svalue_kind | get_kind () const =0 |
|
void | print (const region_model &model, pretty_printer *pp) const |
|
virtual void | dump_to_pp (pretty_printer *pp, bool simple) const =0 |
|
void | dump () const |
|
void | dump (bool simple) const |
|
label_text | get_desc (bool simple=true) const |
|
std::unique_ptr< json::value > | to_json () const |
|
std::unique_ptr< text_art::tree_widget > | make_dump_widget (const dump_widget_info &dwi, const char *prefix=nullptr) const |
|
virtual const region_svalue * | dyn_cast_region_svalue () const |
|
virtual const constant_svalue * | dyn_cast_constant_svalue () const |
|
virtual const poisoned_svalue * | dyn_cast_poisoned_svalue () const |
|
virtual const setjmp_svalue * | dyn_cast_setjmp_svalue () const |
|
virtual const initial_svalue * | dyn_cast_initial_svalue () const |
|
virtual const unaryop_svalue * | dyn_cast_unaryop_svalue () const |
|
virtual const binop_svalue * | dyn_cast_binop_svalue () const |
|
virtual const sub_svalue * | dyn_cast_sub_svalue () const |
|
virtual const repeated_svalue * | dyn_cast_repeated_svalue () const |
|
virtual const bits_within_svalue * | dyn_cast_bits_within_svalue () const |
|
virtual const unmergeable_svalue * | dyn_cast_unmergeable_svalue () const |
|
virtual const widening_svalue * | dyn_cast_widening_svalue () const |
|
virtual const compound_svalue * | dyn_cast_compound_svalue () const |
|
virtual const conjured_svalue * | dyn_cast_conjured_svalue () const |
|
virtual const asm_output_svalue * | dyn_cast_asm_output_svalue () const |
|
virtual const const_fn_result_svalue * | dyn_cast_const_fn_result_svalue () const |
|
tree | maybe_get_constant () const |
|
const region * | maybe_get_region () const |
|
const svalue * | maybe_undo_cast () const |
|
const svalue * | unwrap_any_unmergeable () const |
|
const svalue * | can_merge_p (const svalue *other, region_model_manager *mgr, model_merger *merger) const |
|
virtual void | accept (visitor *v) const =0 |
|
bool | live_p (const svalue_set *live_svalues, const region_model *model) const |
|
virtual bool | implicitly_live_p (const svalue_set *live_svalues, const region_model *model) const |
|
bool | involves_p (const svalue *other) const |
|
const svalue * | extract_bit_range (tree type, const bit_range &subrange, region_model_manager *mgr) const |
|
virtual const svalue * | maybe_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 region * | maybe_get_deref_base_region () const |
|
bool | maybe_print_for_user (pretty_printer *pp, const region_model &model, const svalue *outer_sval=nullptr) const |
|
const complexity & | get_complexity () const |
|
id_t | get_id () const |
|
svalue and its subclasses.
The class hierarchy looks like this (using indentation to show
inheritance, and with svalue_kinds shown for the concrete subclasses):
svalue
region_svalue (SK_REGION): a pointer to a region
constant_svalue (SK_CONSTANT): a constant
unknown_svalue (SK_UNKNOWN): an unknowable value
poisoned_svalue (SK_POISONED): a unusable value (undefined)
setjmp_svalue (SK_SETJMP): a setjmp/longjmp buffer
initial_svalue (SK_INITIAL): the initial value of a region
unaryop_svalue (SK_UNARYOP): unary operation on another svalue
binop_svalue (SK_BINOP): binary operation on two svalues
sub_svalue (SK_SUB): the result of accessing a subregion
repeated_svalue (SK_REPEATED): repeating an svalue to fill a larger region
bits_within_svalue (SK_BITS_WITHIN): a range of bits/bytes within a larger
svalue
unmergeable_svalue (SK_UNMERGEABLE): a value that is so interesting
from a control-flow perspective that it can inhibit state-merging
placeholder_svalue (SK_PLACEHOLDER): for use in selftests.
widening_svalue (SK_WIDENING): a merger of two svalues (possibly
in an iteration).
compound_svalue (SK_COMPOUND): a mapping of bit-ranges to svalues
conjured_svalue (SK_CONJURED): a value arising from a stmt
asm_output_svalue (SK_ASM_OUTPUT): an output from a deterministic
asm stmt.
const_fn_result_svalue (SK_CONST_FN_RESULT): the return value from
a function with __attribute((const)) for given inputs.
An abstract base class representing a value held by a region of memory.