38 expr.
type().
id() != ID_struct,
39 "no L2-renamed expression expected, all struct-like types should be tags");
42 auto struct_tag_type = type_try_dynamic_cast<struct_tag_typet>(expr.
type()))
46 for(
const auto &comp : struct_type.
components())
53 else if(
auto pointer_type = type_try_dynamic_cast<pointer_typet>(expr.
type()))
59 if(base_type.
id() != ID_code && base_type.
id() != ID_empty)
pointer_typet pointer_type(const typet &subtype)
Operator to return the address of an object.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
bool starts_with(const char *s) const
equivalent of as_string().starts_with(s)
Base class for all expressions.
const source_locationt & source_location() const
void visit_pre(std::function< void(exprt &)>)
typet & type()
Return the type of the expression.
const symex_level2t & get_level2() const
Central data structure: state.
static irep_idt guard_identifier()
symbol_tablet symbol_table
contains symbols that are minted during symbolic execution, such as dynamically created objects etc.
symex_targett::sourcet source
void initialize_auto_object(const exprt &, statet &)
namespacet ns
Initialized just before symbolic execution begins, to point to both outer_symbol_table and the symbol...
void trigger_auto_object(const exprt &, statet &)
void symex_assign(statet &state, const exprt &lhs, const exprt &rhs)
Symbolically execute an ASSIGN instruction or simulate such an execution for a synthetic assignment.
exprt make_auto_object(const typet &, statet &)
The trinary if-then-else operator.
const irep_idt & id() const
Extract member of struct or union.
const union_typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See documentation for namespace_baset::lookup().
The null pointer constant.
const typet & base_type() const
The type of the data what we point to.
bool has_key(const key_type &k) const
Check if key is in map.
A side_effect_exprt that returns a non-deterministically chosen value.
Expression providing an SSA-renamed symbol of expressions.
irep_idt get_object_name() const
Structure type, corresponds to C style structs.
const componentst & components() const
const irep_idt & get_identifier() const
irep_idt base_name
Base (non-scoped) name.
class symbol_exprt symbol_expr() const
Produces a symbol_exprt for a symbol.
The type of an expression, extends irept.
symbolt & get_fresh_aux_symbol(const typet &type, const std::string &name_prefix, const std::string &basename_prefix, const source_locationt &source_location, const irep_idt &symbol_mode, const namespacet &ns, symbol_table_baset &symbol_table)
Installs a fresh-named symbol with respect to the given namespace ns with the requested name pattern ...
Fresh auxiliary symbol creation.
API to expression classes for Pointers.
#define DATA_INVARIANT(CONDITION, REASON)
This condition should be used to document that assumptions that are made on goto_functions,...
const ssa_exprt & to_ssa_expr(const exprt &expr)
Cast a generic exprt to an ssa_exprt.
bool is_ssa_expr(const exprt &expr)
API to expression classes.
symex_renaming_levelt current_names
goto_programt::const_targett pc