Go to the documentation of this file.
12 #ifndef CPROVER_GOTO_SYMEX_SYMEX_ASSIGN_H
13 #define CPROVER_GOTO_SYMEX_SYMEX_ASSIGN_H
79 template <
bool use_update>
88 template <
bool use_update>
114 #endif // CPROVER_GOTO_SYMEX_SYMEX_ASSIGN_H
Configuration used for a symbolic execution.
Central data structure: state.
void assign_from_struct(const ssa_exprt &lhs, const expr_skeletont &full_lhs, const struct_exprt &rhs, const exprt::operandst &guard)
Assign a struct expression to a symbol.
void assign_struct_member(const member_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard)
The trinary if-then-else operator.
Base class for all expressions.
Functor for symex assignment.
void assign_byte_extract(const byte_extract_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard)
Struct constructor from list of elements.
Expression providing an SSA-renamed symbol of expressions.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
void assign_typecast(const typecast_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard)
void assign_if(const if_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard)
void assign_array(const index_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard)
symex_assignt(goto_symex_statet &state, symex_targett::assignment_typet assignment_type, const namespacet &ns, const symex_configt &symex_config, symex_targett &target)
symex_targett::assignment_typet assignment_type
std::vector< exprt > operandst
void assign_rec(const exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard)
void assign_non_struct_symbol(const ssa_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, const exprt::operandst &guard)
Extract member of struct or union.
const symex_configt & symex_config
goto_symex_statet & state
Semantic type conversion.
The interface of the target container for symbolic execution to record its symbolic steps into.
Expression in which some part is missing and can be substituted for another expression.
void assign_symbol(const ssa_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, const exprt::operandst &guard)
Record the assignment of value rhs to variable lhs in state and add the equation to target: lhs#{n+1}...