Functor for symex assignment.
More...
#include <symex_assign.h>
|
| symex_assignt (goto_symex_statet &state, symex_targett::assignment_typet assignment_type, const namespacet &ns, const symex_configt &symex_config, symex_targett &target) |
|
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} == guard ? rhs#{m} : lhs#{n} where {n} and {m} denote the current L2 indexes of lhs and rhs respectively. More...
|
|
void | assign_rec (const exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard) |
|
|
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. More...
|
|
void | assign_non_struct_symbol (const ssa_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, const exprt::operandst &guard) |
|
template<bool use_update> |
void | assign_array (const index_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard) |
|
template<bool use_update> |
void | assign_struct_member (const member_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_typecast (const typecast_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard) |
|
void | assign_byte_extract (const byte_extract_exprt &lhs, const expr_skeletont &full_lhs, const exprt &rhs, exprt::operandst &guard) |
|
Functor for symex assignment.
Definition at line 25 of file symex_assign.h.
◆ symex_assignt()
◆ assign_array()
template<bool use_update>
◆ assign_byte_extract()
◆ assign_from_struct()
Assign a struct expression to a symbol.
If symex_assignt::assign_symbol was used then we would assign the whole symbol, before extracting its components, with results like x = {1, 2}; x..field1 = x.field1; x..field2 = x.field2;
This abbreviates the process, directly producing x..field1 = 1; x..field2 = 2;
- Parameters
-
lhs | symbol to assign (already renamed to L1) |
full_lhs | expression skeleton corresponding to lhs , to be included in the result trace |
rhs | struct expression to assign to lhs |
guard | guard conjuncts that must hold for this assignment to be made |
Definition at line 128 of file symex_assign.cpp.
◆ assign_if()
◆ assign_non_struct_symbol()
◆ assign_rec()
◆ assign_struct_member()
template<bool use_update>
◆ assign_symbol()
Record the assignment of value rhs
to variable lhs
in state
and add the equation to target: lhs#{n+1} == guard ? rhs#{m} : lhs#{n}
where {n} and {m} denote the current L2 indexes of lhs and rhs respectively.
Definition at line 226 of file symex_assign.cpp.
◆ assign_typecast()
◆ assignment_type
◆ ns
◆ state
◆ symex_config
◆ target
The documentation for this class was generated from the following files:
- /home/runner/work/cbmc-documentation/cbmc-documentation/src/goto-symex/symex_assign.h
- /home/runner/work/cbmc-documentation/cbmc-documentation/src/goto-symex/symex_assign.cpp