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