37 typedef std::list<value_set_fit::entryt>
entry_listt;
48 typedef std::unordered_map<irep_idt, entry_listt>
entry_cachet;
53 for(goto_programt::instructionst::const_iterator
60 for(goto_programt::decl_identifierst::const_iterator
84 std::list<value_set_fit::entryt> &dest)
91 const std::string &suffix,
93 std::list<value_set_fit::entryt> &dest)
97 const auto &components =
99 for(
const auto &
c : components)
102 identifier, suffix +
"." +
id2string(
c.get_name()),
c.type(), dest);
108 for(
const auto &
c : components)
111 identifier, suffix +
"." +
id2string(
c.get_name()),
c.type(), dest);
117 identifier, suffix +
"[]",
to_array_type(type).element_type(), dest);
129 std::list<value_set_fit::entryt>
globals;
138 std::set<irep_idt> locals;
145 std::list<value_set_fit::entryt> entries;
153 std::list<value_set_fit::entryt> &dest)
172 {
return true;
break; }
177 const typet *t = &type;
const union_tag_typet & to_union_tag_type(const typet &type)
Cast a typet to a union_tag_typet.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
goto_programt::const_targett locationt
virtual void initialize(const goto_programt &)
value_set_domain_fit state
A collection of goto functions.
function_mapt function_map
A generic container class for the GOTO intermediate representation of one function.
instructionst instructions
The list of instructions in the goto program.
std::set< irep_idt > decl_identifierst
void get_decl_identifiers(decl_identifierst &decl_identifiers) const
get the variables in decl statements
const irep_idt & id() const
typet type
Type of symbol.
irep_idt name
The unique identifier.
The type of an expression, extends irept.
bool check_type(const typet &type)
std::vector< exprt > get_values(const irep_idt &function_id, locationt l, const exprt &expr) override
void get_entries(const symbolt &symbol, std::list< value_set_fit::entryt > &dest)
void add_vars(const goto_functionst &goto_functions)
void get_entries_rec(const irep_idt &identifier, const std::string &suffix, const typet &type, std::list< value_set_fit::entryt > &dest)
void get_globals(std::list< value_set_fit::entryt > &dest)
@ TRACK_FUNCTION_POINTERS
track_optionst track_options
void initialize(const goto_programt &goto_program) override
static numberingt< irep_idt > function_numbering
void add_vars(const std::list< entryt > &vars)
std::vector< exprt > get_value_set(const exprt &expr, const namespacet &ns) const
unsigned from_target_index
void get_local_identifiers(const goto_functiont &goto_function, std::set< irep_idt > &dest)
Return in dest the identifiers of the local variables declared in the goto_function and the identifie...
const std::string & id2string(const irep_idt &d)
API to expression classes for Pointers.
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.
const struct_or_union_tag_typet & to_struct_or_union_tag_type(const typet &type)
Cast a typet to a struct_or_union_tag_typet.
const array_typet & to_array_type(const typet &type)
Cast a typet to an array_typet.
const struct_union_typet & to_struct_union_type(const typet &type)
Cast a typet to a struct_union_typet.
Value Set Propagation (flow insensitive)