21#ifndef GCC_ANALYZER_SVALUE_H
22#define GCC_ANALYZER_SVALUE_H
267 static const bool empty_zero_p =
false;
355 static const bool empty_zero_p =
false;
415 : m_kind (kind), m_type (
type)
428 return (m_kind == other.
m_kind && m_type == other.
m_type);
434 bool is_empty ()
const {
return m_type ==
reinterpret_cast<tree> (2); }
477 static const bool empty_zero_p =
false;
495 return (m_enode == other.
m_enode
501 hstate->add_ptr (m_enode);
502 hstate->add_ptr (m_setjmp_call);
528 m_record.add_to_hash (&
hstate);
541 bool is_empty ()
const {
return m_type ==
reinterpret_cast<tree> (2); }
581 static const bool empty_zero_p =
false;
642 : m_type (
type), m_op (op), m_arg (arg)
656 return (m_type == other.
m_type
657 && m_op == other.
m_op
658 && m_arg == other.
m_arg);
664 bool is_empty ()
const {
return m_type ==
reinterpret_cast<tree> (2); }
713 static const bool empty_zero_p =
false;
729 : m_type (
type), m_op (op), m_arg0 (
arg0), m_arg1 (
arg1)
744 return (m_type == other.
m_type
745 && m_op == other.
m_op
747 && m_arg1 == other.
m_arg1);
753 bool is_empty ()
const {
return m_type ==
reinterpret_cast<tree> (2); }
764 arg1->get_complexity ()),
767 m_op (op), m_arg0 (
arg0), m_arg1 (
arg1)
807 static const bool empty_zero_p =
false;
830 hstate.add_ptr (m_parent_svalue);
831 hstate.add_ptr (m_subregion);
837 return (m_type == other.
m_type
845 bool is_empty ()
const {
return m_type ==
reinterpret_cast<tree> (2); }
886 static const bool empty_zero_p =
false;
911 hstate.add_ptr (m_outer_size);
912 hstate.add_ptr (m_inner_svalue);
918 return (m_type == other.
m_type
926 bool is_empty ()
const {
return m_type ==
reinterpret_cast<tree> (2); }
974 static const bool empty_zero_p =
false;
1000 hstate.add_ptr (m_inner_svalue);
1006 return (m_type == other.
m_type
1007 && m_bits == other.
m_bits
1063 static const bool empty_zero_p =
false;
1175 hstate.add_ptr (m_base_sval);
1176 hstate.add_ptr (m_iter_sval);
1182 return (m_type == other.
m_type
1256 static const bool empty_zero_p =
false;
1299 return (m_type == other.
m_type
1330 return key_t (get_type (), &m_map);
1357 static const bool empty_zero_p =
false;
1415 hstate.add_ptr (m_id_reg);
1421 return (m_type == other.
m_type
1424 && m_idx == other.
m_idx);
1483 static const bool empty_zero_p =
true;
1500 static const unsigned MAX_INPUTS = 2;
1510 m_num_inputs (inputs.length ())
1513 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1514 m_input_arr[
i] = inputs[
i];
1522 hstate.add_int (m_output_idx);
1523 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1524 hstate.add_ptr (m_input_arr[
i]);
1530 if (!(m_type == other.
m_type
1535 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1543 void mark_deleted () { m_asm_string =
reinterpret_cast<const char *
> (1); }
1547 return m_asm_string ==
reinterpret_cast<const char *
> (1);
1568 m_num_inputs (inputs.length ())
1571 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1572 m_input_arr[
i] = inputs[
i];
1622 static const bool empty_zero_p =
true;
1639 static const unsigned MAX_INPUTS = 2;
1647 : m_type (
type), m_fndecl (fndecl),
1648 m_num_inputs (inputs.length ())
1651 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1652 m_input_arr[
i] = inputs[
i];
1659 hstate.add_ptr (m_fndecl);
1660 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1661 hstate.add_ptr (m_input_arr[
i]);
1667 if (!(m_type == other.
m_type
1671 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1682 return m_fndecl ==
reinterpret_cast<tree> (1);
1698 m_num_inputs (inputs.length ())
1701 for (
unsigned i = 0;
i < m_num_inputs;
i++)
1702 m_input_arr[
i] = inputs[
i];
1746 static const bool empty_zero_p =
true;
const asm_output_svalue * dyn_cast_asm_output_svalue() const final override
Definition svalue.h:1577
void dump_input(pretty_printer *pp, unsigned input_idx, const svalue *sval, bool simple) const
const char * get_asm_string() const
Definition svalue.h:1585
asm_output_svalue(symbol::id_t id, tree type, const char *asm_string, unsigned output_idx, unsigned num_outputs, const vec< const svalue * > &inputs)
Definition svalue.h:1558
const char * m_asm_string
Definition svalue.h:1598
unsigned m_num_inputs
Definition svalue.h:1605
unsigned m_output_idx
Definition svalue.h:1599
unsigned get_num_outputs() const
Definition svalue.h:1587
unsigned input_idx_to_asm_idx(unsigned input_idx) const
unsigned get_num_inputs() const
Definition svalue.h:1588
enum svalue_kind get_kind() const final override
Definition svalue.h:1575
const svalue * get_input(unsigned idx) const
Definition svalue.h:1589
unsigned m_num_outputs
Definition svalue.h:1603
void accept(visitor *v) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
unsigned get_output_idx() const
Definition svalue.h:1586
map_t::iterator iterator_t
Definition store.h:509
enum tree_code get_op() const
Definition svalue.h:784
const svalue * get_arg1() const
Definition svalue.h:786
void accept(visitor *v) const final override
enum tree_code m_op
Definition svalue.h:789
const svalue * get_arg0() const
Definition svalue.h:785
const svalue * m_arg1
Definition svalue.h:791
enum svalue_kind get_kind() const final override
Definition svalue.h:773
binop_svalue(symbol::id_t id, tree type, enum tree_code op, const svalue *arg0, const svalue *arg1)
Definition svalue.h:761
const svalue * m_arg0
Definition svalue.h:790
void dump_to_pp(pretty_printer *pp, bool simple) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
const binop_svalue * dyn_cast_binop_svalue() const final override
Definition svalue.h:774
enum svalue_kind get_kind() const final override
Definition svalue.h:1025
const bit_range m_bits
Definition svalue.h:1046
const svalue * m_inner_svalue
Definition svalue.h:1047
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void accept(visitor *v) const final override
bits_within_svalue(symbol::id_t id, tree type, const bit_range &bits, const svalue *inner_svalue)
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * get_inner_svalue() const
Definition svalue.h:1038
const bits_within_svalue * dyn_cast_bits_within_svalue() const final override
Definition svalue.h:1027
const bit_range & get_bits() const
Definition svalue.h:1037
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
iterator_t begin() const
Definition svalue.h:1325
static complexity calc_complexity(const binding_map &map)
compound_svalue(symbol::id_t id, tree type, const binding_map &map)
iterator_t end() const
Definition svalue.h:1326
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const binding_map & get_map() const
Definition svalue.h:1323
binding_map::iterator_t iterator_t
Definition svalue.h:1278
enum svalue_kind get_kind() const final override
Definition svalue.h:1314
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
void accept(visitor *v) const final override
binding_map m_map
Definition svalue.h:1341
const compound_svalue * dyn_cast_compound_svalue() const final override
Definition svalue.h:1315
void purge(const conjured_svalue *sval) const
conjured_purge(region_model *model, region_model_context *ctxt)
Definition svalue.h:1372
region_model_context * m_ctxt
Definition svalue.h:1380
region_model * m_model
Definition svalue.h:1379
void accept(visitor *v) const final override
const gimple * get_stmt() const
Definition svalue.h:1460
const conjured_svalue * dyn_cast_conjured_svalue() const final override
Definition svalue.h:1452
enum svalue_kind get_kind() const final override
Definition svalue.h:1451
const region * m_id_reg
Definition svalue.h:1466
const gimple * m_stmt
Definition svalue.h:1465
unsigned m_idx
Definition svalue.h:1467
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const region * get_id_region() const
Definition svalue.h:1461
conjured_svalue(symbol::id_t id, tree type, const gimple *stmt, const region *id_reg, unsigned idx)
Definition svalue.h:1443
tree m_fndecl
Definition svalue.h:1728
unsigned get_num_inputs() const
Definition svalue.h:1719
void accept(visitor *v) const final override
tree get_fndecl() const
Definition svalue.h:1718
const svalue * get_input(unsigned idx) const
Definition svalue.h:1720
enum svalue_kind get_kind() const final override
Definition svalue.h:1705
void dump_input(pretty_printer *pp, unsigned input_idx, const svalue *sval, bool simple) const
const_fn_result_svalue(symbol::id_t id, tree type, tree fndecl, const vec< const svalue * > &inputs)
Definition svalue.h:1692
unsigned m_num_inputs
Definition svalue.h:1729
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const const_fn_result_svalue * dyn_cast_const_fn_result_svalue() const final override
Definition svalue.h:1710
bool all_zeroes_p() const final override
static tristate eval_condition(const constant_svalue *lhs, enum tree_code op, const constant_svalue *rhs)
enum svalue_kind get_kind() const final override
Definition svalue.h:317
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const constant_svalue * dyn_cast_constant_svalue() const final override
Definition svalue.h:319
constant_svalue(symbol::id_t id, tree type, tree cst_expr)
Definition svalue.h:308
tree get_constant() const
Definition svalue.h:326
tree m_cst_expr
Definition svalue.h:339
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
Definition exploded-graph.h:203
Definition program-point.h:73
const initial_svalue * dyn_cast_initial_svalue() const final override
Definition svalue.h:605
const region * get_region() const
Definition svalue.h:614
void accept(visitor *v) const final override
bool initial_value_of_param_p() const
const region * m_reg
Definition svalue.h:617
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:603
initial_svalue(symbol::id_t id, tree type, const region *reg)
Definition svalue.h:597
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:1127
placeholder_svalue(symbol::id_t id, tree type, const char *name)
Definition svalue.h:1122
const char * m_name
Definition svalue.h:1135
const char * get_name() const
Definition svalue.h:1132
void accept(visitor *v) const final override
enum poison_kind get_poison_kind() const
Definition svalue.h:455
void accept(visitor *v) const final override
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const poisoned_svalue * dyn_cast_poisoned_svalue() const final override
Definition svalue.h:445
void dump_to_pp(pretty_printer *pp, bool simple) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:443
bool can_have_associated_state_p() const final override
Definition svalue.h:458
enum poison_kind m_kind
Definition svalue.h:461
poisoned_svalue(enum poison_kind kind, symbol::id_t id, tree type)
Definition svalue.h:440
Definition region-model.h:702
Definition region-model-manager.h:32
Definition region-model.h:258
enum svalue_kind get_kind() const final override
Definition svalue.h:235
const region_svalue * dyn_cast_region_svalue() const final override
Definition svalue.h:237
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const region * get_pointee() const
Definition svalue.h:244
static tristate eval_condition(const region_svalue *lhs_ptr, enum tree_code op, const region_svalue *rhs_ptr)
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void accept(visitor *v) const final override
region_svalue(symbol::id_t id, tree type, const region *reg)
Definition svalue.h:228
const region * m_reg
Definition svalue.h:251
virtual enum region_kind get_kind() const =0
const repeated_svalue * dyn_cast_repeated_svalue() const final override
Definition svalue.h:938
const svalue * get_inner_svalue() const
Definition svalue.h:947
bool all_zeroes_p() const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void accept(visitor *v) const final override
const svalue * get_outer_size() const
Definition svalue.h:946
enum svalue_kind get_kind() const final override
Definition svalue.h:937
repeated_svalue(symbol::id_t id, tree type, const svalue *outer_size, const svalue *inner_svalue)
const setjmp_svalue * dyn_cast_setjmp_svalue() const final override
Definition svalue.h:555
void accept(visitor *v) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:553
setjmp_svalue(const setjmp_record &setjmp_record, symbol::id_t id, tree type)
Definition svalue.h:547
const setjmp_record & get_setjmp_record() const
Definition svalue.h:562
setjmp_record m_setjmp_record
Definition svalue.h:565
int get_enode_index() const
const svalue * get_parent() const
Definition svalue.h:865
const region * m_subregion
Definition svalue.h:870
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void accept(visitor *v) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:854
const region * get_subregion() const
Definition svalue.h:866
const svalue * m_parent_svalue
Definition svalue.h:869
sub_svalue(symbol::id_t id, tree type, const svalue *parent_svalue, const region *subregion)
const sub_svalue * dyn_cast_sub_svalue() const final override
Definition svalue.h:855
void dump_to_pp(pretty_printer *pp, bool simple) const final override
virtual const unaryop_svalue * dyn_cast_unaryop_svalue() const
Definition svalue.h:118
virtual const compound_svalue * dyn_cast_compound_svalue() const
Definition svalue.h:132
virtual void accept(visitor *v) const =0
virtual const asm_output_svalue * dyn_cast_asm_output_svalue() const
Definition svalue.h:136
virtual void dump_to_pp(pretty_printer *pp, bool simple) const =0
virtual const repeated_svalue * dyn_cast_repeated_svalue() const
Definition svalue.h:124
const svalue * extract_bit_range(tree type, const bit_range &subrange, region_model_manager *mgr) const
virtual const widening_svalue * dyn_cast_widening_svalue() const
Definition svalue.h:130
bool live_p(const svalue_set *live_svalues, const region_model *model) const
const region * maybe_get_deref_base_region() const
virtual const poisoned_svalue * dyn_cast_poisoned_svalue() const
Definition svalue.h:112
json::value * to_json() const
tree m_type
Definition svalue.h:190
bool involves_p(const svalue *other) const
label_text get_desc(bool simple=true) const
virtual const unmergeable_svalue * dyn_cast_unmergeable_svalue() const
Definition svalue.h:128
virtual const const_fn_result_svalue * dyn_cast_const_fn_result_svalue() const
Definition svalue.h:138
virtual const region_svalue * dyn_cast_region_svalue() const
Definition svalue.h:108
virtual enum svalue_kind get_kind() const =0
void dump(bool simple=true) const
virtual ~svalue()
Definition svalue.h:92
virtual const initial_svalue * dyn_cast_initial_svalue() const
Definition svalue.h:116
virtual const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const
virtual bool can_have_associated_state_p() const
Definition svalue.h:176
tree maybe_get_constant() const
virtual const sub_svalue * dyn_cast_sub_svalue() const
Definition svalue.h:122
const svalue * can_merge_p(const svalue *other, region_model_manager *mgr, model_merger *merger) const
virtual const constant_svalue * dyn_cast_constant_svalue() const
Definition svalue.h:110
virtual const conjured_svalue * dyn_cast_conjured_svalue() const
Definition svalue.h:134
static int cmp_ptr_ptr(const void *, const void *)
svalue(complexity c, symbol::id_t id, tree type)
Definition svalue.h:185
virtual const binop_svalue * dyn_cast_binop_svalue() const
Definition svalue.h:120
const svalue * unwrap_any_unmergeable() const
virtual const setjmp_svalue * dyn_cast_setjmp_svalue() const
Definition svalue.h:114
tree get_type() const
Definition svalue.h:94
static int cmp_ptr(const svalue *, const svalue *)
void print(const region_model &model, pretty_printer *pp) const
const svalue * maybe_undo_cast() const
const region * maybe_get_region() const
virtual const bits_within_svalue * dyn_cast_bits_within_svalue() const
Definition svalue.h:126
bool maybe_print_for_user(pretty_printer *pp, const region_model &model, const svalue *outer_sval=nullptr) const
virtual bool implicitly_live_p(const svalue_set *live_svalues, const region_model *model) const
virtual bool all_zeroes_p() const
unsigned id_t
Definition symbol.h:33
void accept(visitor *v) const final override
const svalue * m_arg
Definition svalue.h:697
unaryop_svalue(symbol::id_t id, tree type, enum tree_code op, const svalue *arg)
Definition svalue.h:671
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * get_arg() const
Definition svalue.h:688
enum tree_code get_op() const
Definition svalue.h:687
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:678
const unaryop_svalue * dyn_cast_unaryop_svalue() const final override
Definition svalue.h:680
enum tree_code m_op
Definition svalue.h:696
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
bool can_have_associated_state_p() const final override
Definition svalue.h:383
unknown_svalue(symbol::id_t id, tree type)
Definition svalue.h:368
enum svalue_kind get_kind() const final override
Definition svalue.h:372
void accept(visitor *v) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const unmergeable_svalue * dyn_cast_unmergeable_svalue() const final override
Definition svalue.h:1089
enum svalue_kind get_kind() const final override
Definition svalue.h:1087
void accept(visitor *v) const final override
unmergeable_svalue(symbol::id_t id, const svalue *arg)
Definition svalue.h:1082
const svalue * get_arg() const
Definition svalue.h:1096
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * m_arg
Definition svalue.h:1099
Definition region-model.h:217
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * m_base_sval
Definition svalue.h:1239
const svalue * get_base_svalue() const
Definition svalue.h:1229
widening_svalue(symbol::id_t id, tree type, const function_point &point, const svalue *base_sval, const svalue *iter_sval)
Definition svalue.h:1206
direction_t
Definition svalue.h:1200
@ DIR_DESCENDING
Definition svalue.h:1202
@ DIR_ASCENDING
Definition svalue.h:1201
function_point m_point
Definition svalue.h:1238
const widening_svalue * dyn_cast_widening_svalue() const final override
Definition svalue.h:1220
enum svalue_kind get_kind() const final override
Definition svalue.h:1219
const function_point & get_point() const
Definition svalue.h:1228
const svalue * get_iter_svalue() const
Definition svalue.h:1230
tristate eval_condition_without_cm(enum tree_code op, tree rhs_cst) const
void accept(visitor *v) const final override
const svalue * m_iter_sval
Definition svalue.h:1240
enum direction_t get_direction() const
Definition pretty-print.h:244
union tree_node * tree
Definition coretypes.h:97
static struct string2counter_map map[debug_counter_number_of_counters]
Definition dbgcnt.cc:39
bool operator==(const nowarn_spec_t &lhs, const nowarn_spec_t &rhs)
Definition diagnostic-spec.h:124
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2002
tree_code
Definition genmatch.cc:347
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
Definition access-diagram.h:30
poison_kind
Definition svalue.h:389
@ POISON_KIND_DELETED
Definition svalue.h:397
@ POISON_KIND_POPPED_STACK
Definition svalue.h:400
@ POISON_KIND_UNINIT
Definition svalue.h:391
@ POISON_KIND_FREED
Definition svalue.h:394
const char * poison_kind_to_str(enum poison_kind)
svalue_kind
Definition svalue.h:36
@ SK_BINOP
Definition svalue.h:44
@ SK_REPEATED
Definition svalue.h:46
@ SK_BITS_WITHIN
Definition svalue.h:47
@ SK_INITIAL
Definition svalue.h:42
@ SK_COMPOUND
Definition svalue.h:51
@ SK_ASM_OUTPUT
Definition svalue.h:53
@ SK_UNKNOWN
Definition svalue.h:39
@ SK_SUB
Definition svalue.h:45
@ SK_UNARYOP
Definition svalue.h:43
@ SK_POISONED
Definition svalue.h:40
@ SK_CONSTANT
Definition svalue.h:38
@ SK_PLACEHOLDER
Definition svalue.h:49
@ SK_UNMERGEABLE
Definition svalue.h:48
@ SK_CONJURED
Definition svalue.h:52
@ SK_SETJMP
Definition svalue.h:41
@ SK_CONST_FN_RESULT
Definition svalue.h:54
@ SK_WIDENING
Definition svalue.h:50
@ SK_REGION
Definition svalue.h:37
i
Definition poly-int.h:772
key_t(tree type, const char *asm_string, unsigned output_idx, const vec< const svalue * > &inputs)
Definition svalue.h:1505
unsigned m_num_inputs
Definition svalue.h:1554
bool is_deleted() const
Definition svalue.h:1545
void mark_empty()
Definition svalue.h:1544
hashval_t hash() const
Definition svalue.h:1517
bool is_empty() const
Definition svalue.h:1549
unsigned m_output_idx
Definition svalue.h:1553
void mark_deleted()
Definition svalue.h:1543
const char * m_asm_string
Definition svalue.h:1552
const svalue * m_input_arr[MAX_INPUTS]
Definition svalue.h:1555
tree m_type
Definition svalue.h:1551
bool is_empty() const
Definition svalue.h:753
enum tree_code m_op
Definition svalue.h:756
hashval_t hash() const
Definition svalue.h:732
const svalue * m_arg1
Definition svalue.h:758
tree m_type
Definition svalue.h:755
void mark_deleted()
Definition svalue.h:750
key_t(tree type, enum tree_code op, const svalue *arg0, const svalue *arg1)
Definition svalue.h:727
void mark_empty()
Definition svalue.h:751
bool is_deleted() const
Definition svalue.h:752
const svalue * m_arg0
Definition svalue.h:757
bool is_deleted() const
Definition svalue.h:1013
key_t(tree type, const bit_range &bits, const svalue *inner_svalue)
Definition svalue.h:990
hashval_t hash() const
Definition svalue.h:996
bool is_empty() const
Definition svalue.h:1014
void mark_empty()
Definition svalue.h:1012
bit_range m_bits
Definition svalue.h:1017
void mark_deleted()
Definition svalue.h:1011
const svalue * m_inner_svalue
Definition svalue.h:1018
tree m_type
Definition svalue.h:1016
Definition complexity.h:31
bool is_deleted() const
Definition svalue.h:1305
tree m_type
Definition svalue.h:1308
void mark_empty()
Definition svalue.h:1304
hashval_t hash() const
Definition svalue.h:1289
bool is_empty() const
Definition svalue.h:1306
key_t(tree type, const binding_map *map_ptr)
Definition svalue.h:1285
const binding_map * m_map_ptr
Definition svalue.h:1309
void mark_deleted()
Definition svalue.h:1303
unsigned m_idx
Definition svalue.h:1440
bool is_deleted() const
Definition svalue.h:1431
void mark_empty()
Definition svalue.h:1430
bool is_empty() const
Definition svalue.h:1435
const gimple * m_stmt
Definition svalue.h:1438
void mark_deleted()
Definition svalue.h:1429
key_t(tree type, const gimple *stmt, const region *id_reg, unsigned idx)
Definition svalue.h:1406
tree m_type
Definition svalue.h:1437
hashval_t hash() const
Definition svalue.h:1410
const region * m_id_reg
Definition svalue.h:1439
void mark_empty()
Definition svalue.h:1679
tree m_fndecl
Definition svalue.h:1687
hashval_t hash() const
Definition svalue.h:1655
const svalue * m_input_arr[MAX_INPUTS]
Definition svalue.h:1689
bool is_empty() const
Definition svalue.h:1684
tree m_type
Definition svalue.h:1686
void mark_deleted()
Definition svalue.h:1678
unsigned m_num_inputs
Definition svalue.h:1688
bool is_deleted() const
Definition svalue.h:1680
key_t(tree type, tree fndecl, const vec< const svalue * > &inputs)
Definition svalue.h:1644
bool is_empty() const
Definition svalue.h:302
void mark_deleted()
Definition svalue.h:299
bool is_deleted() const
Definition svalue.h:301
key_t(tree type, tree cst)
Definition svalue.h:282
tree m_cst
Definition svalue.h:305
hashval_t hash() const
Definition svalue.h:286
void mark_empty()
Definition svalue.h:300
tree m_type
Definition svalue.h:304
bool operator==(const key_t &other) const
Definition svalue.h:294
Definition region-model.h:1116
void mark_deleted()
Definition svalue.h:431
bool is_deleted() const
Definition svalue.h:433
hashval_t hash() const
Definition svalue.h:418
enum poison_kind m_kind
Definition svalue.h:436
bool is_empty() const
Definition svalue.h:434
key_t(enum poison_kind kind, tree type)
Definition svalue.h:414
tree m_type
Definition svalue.h:437
void mark_empty()
Definition svalue.h:432
bool operator==(const key_t &other) const
Definition svalue.h:214
bool is_deleted() const
Definition svalue.h:221
bool is_empty() const
Definition svalue.h:222
key_t(tree type, const region *reg)
Definition svalue.h:202
void mark_deleted()
Definition svalue.h:219
tree m_type
Definition svalue.h:224
const region * m_reg
Definition svalue.h:225
void mark_empty()
Definition svalue.h:220
hashval_t hash() const
Definition svalue.h:206
tree m_type
Definition svalue.h:928
void mark_deleted()
Definition svalue.h:923
const svalue * m_outer_size
Definition svalue.h:929
hashval_t hash() const
Definition svalue.h:907
void mark_empty()
Definition svalue.h:924
bool is_empty() const
Definition svalue.h:926
key_t(tree type, const svalue *outer_size, const svalue *inner_svalue)
Definition svalue.h:901
const svalue * m_inner_svalue
Definition svalue.h:930
bool is_deleted() const
Definition svalue.h:925
static int cmp(const setjmp_record &rec1, const setjmp_record &rec2)
const exploded_node * m_enode
Definition svalue.h:507
const gcall * m_setjmp_call
Definition svalue.h:508
void add_to_hash(inchash::hash *hstate) const
Definition svalue.h:499
setjmp_record(const exploded_node *enode, const gcall *setjmp_call)
Definition svalue.h:487
key_t(const setjmp_record &record, tree type)
Definition svalue.h:521
hashval_t hash() const
Definition svalue.h:525
tree m_type
Definition svalue.h:544
setjmp_record m_record
Definition svalue.h:543
void mark_deleted()
Definition svalue.h:538
void mark_empty()
Definition svalue.h:539
bool is_deleted() const
Definition svalue.h:540
bool is_empty() const
Definition svalue.h:541
void mark_empty()
Definition svalue.h:843
void mark_deleted()
Definition svalue.h:842
bool is_deleted() const
Definition svalue.h:844
hashval_t hash() const
Definition svalue.h:826
tree m_type
Definition svalue.h:847
const svalue * m_parent_svalue
Definition svalue.h:848
key_t(tree type, const svalue *parent_svalue, const region *subregion)
Definition svalue.h:822
const region * m_subregion
Definition svalue.h:849
bool is_empty() const
Definition svalue.h:845
tree m_type
Definition svalue.h:666
bool is_deleted() const
Definition svalue.h:663
void mark_empty()
Definition svalue.h:662
bool is_empty() const
Definition svalue.h:664
hashval_t hash() const
Definition svalue.h:645
enum tree_code m_op
Definition svalue.h:667
const svalue * m_arg
Definition svalue.h:668
void mark_deleted()
Definition svalue.h:661
key_t(tree type, enum tree_code op, const svalue *arg)
Definition svalue.h:641
bool is_empty() const
Definition svalue.h:1191
const svalue * m_base_sval
Definition svalue.h:1195
void mark_deleted()
Definition svalue.h:1188
tree m_type
Definition svalue.h:1193
hashval_t hash() const
Definition svalue.h:1172
function_point m_point
Definition svalue.h:1194
bool is_deleted() const
Definition svalue.h:1190
key_t(tree type, const function_point &point, const svalue *base_sval, const svalue *iter_sval)
Definition svalue.h:1166
const svalue * m_iter_sval
Definition svalue.h:1196
void mark_empty()
Definition svalue.h:1189
Definition hash-traits.h:466
Definition collect2.cc:168
Definition analyzer.h:508
Definition gengtype.h:252
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:821
#define TREE_TYPE(NODE)
Definition tree.h:512
#define CONSTANT_CLASS_P(NODE)
Definition tree.h:215
#define NULL_TREE
Definition tree.h:317
gimple * m_stmt
Definition value-pointer-equiv.cc:247