Go to the documentation of this file.
42 if(type.
id()==ID_struct)
46 for(
const auto &comp : struct_type.
components())
53 else if(type.
id()==ID_pointer)
60 if(base_type.
id() != ID_code && base_type.
id() != ID_empty)
const componentst & components() const
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
const struct_typet & to_struct_type(const typet &type)
Cast a typet to a struct_typet.
static unsigned dynamic_counter
A monotonically increasing index for each created dynamic object.
static irep_idt guard_identifier()
The type of an expression, extends irept.
typet type
Type of symbol.
Central data structure: state.
The trinary if-then-else operator.
Base class for all expressions.
irep_idt get_object_name() const
irep_idt base_name
Base (non-scoped) name.
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
void trigger_auto_object(const exprt &, statet &)
Expression to hold a symbol (variable)
Expression providing an SSA-renamed symbol of expressions.
typet & type()
Return the type of the expression.
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See documentation for namespace_baset::lookup().
bool is_ssa_expr(const exprt &expr)
irep_idt mode
Language mode.
bool has_prefix(const std::string &s, const std::string &prefix)
const ssa_exprt & to_ssa_expr(const exprt &expr)
Cast a generic exprt to an ssa_exprt.
The null pointer constant.
const std::string & id2string(const irep_idt &d)
symbol_tablet symbol_table
contains symbols that are minted during symbolic execution, such as dynamically created objects etc.
void initialize_auto_object(const exprt &, statet &)
const irep_idt & get_identifier() const
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
exprt make_auto_object(const typet &, statet &)
pointer_typet pointer_type(const typet &subtype)
const irep_idt & id() const
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.
namespacet ns
Initialized just before symbolic execution begins, to point to both outer_symbol_table and the symbol...
bool add(const symbolt &symbol)
Add a new symbol to the symbol table.
Extract member of struct or union.
Structure type, corresponds to C style structs.
symex_renaming_levelt current_names
const typet & follow(const typet &) const
Resolve type symbol to the type it points to.
const symex_level2t & get_level2() const
const typet & base_type() const
The type of the data what we point to.
void visit_pre(std::function< void(exprt &)>)
Operator to return the address of an object.
The pointer type These are both 'bitvector_typet' (they have a width) and 'type_with_subtypet' (they ...
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.
const source_locationt & source_location() const
irep_idt name
The unique identifier.