CBMC
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
symex_assignt Class Reference

Functor for symex assignment. More...

#include <symex_assign.h>

+ Collaboration diagram for symex_assignt:

Public Member Functions

 
  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.
 
 

Private Member Functions

  Assign a struct expression to a symbol.
 
 
template<bool use_update>
 
template<bool use_update>
 
 
 
 

Private Attributes

std::optional< shadow_memorytshadow_memory
 
 
 
 
 
 
 

Detailed Description

Functor for symex assignment.

Definition at line 27 of file symex_assign.h.

Constructor & Destructor Documentation

◆  symex_assignt()

symex_assignt::symex_assignt ( std::optional< shadow_memorytshadow_memory,
goto_symex_statetstate,
symex_targett::assignment_typet  assignment_type,
const namespacetns,
const symex_configtsymex_config,
const irep_idtlanguage_mode,
symex_targetttarget 
)
inline

Definition at line 30 of file symex_assign.h.

Member Function Documentation

◆  assign_array()

template<bool use_update>
void symex_assignt::assign_array ( const index_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
exprt::operandstguard 
)
private
Template Parameters
use_update use update_exprt instead of with_exprt when building expressions that modify components of an array or a struct

Definition at line 293 of file symex_assign.cpp.

◆  assign_byte_extract()

void symex_assignt::assign_byte_extract ( const byte_extract_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
exprt::operandstguard 
)
private

Definition at line 409 of file symex_assign.cpp.

◆  assign_from_struct()

void symex_assignt::assign_from_struct ( const ssa_exprtlhs,
const expr_skeletontfull_lhs,
const struct_exprtrhs,
const exprt::operandstguard 
)
private

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 165 of file symex_assign.cpp.

◆  assign_if()

void symex_assignt::assign_if ( const if_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
exprt::operandstguard 
)
private

Definition at line 392 of file symex_assign.cpp.

◆  assign_non_struct_symbol()

void symex_assignt::assign_non_struct_symbol ( const ssa_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
const exprt::operandstguard 
)
private

Definition at line 190 of file symex_assign.cpp.

◆  assign_rec()

void symex_assignt::assign_rec ( const exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
exprt::operandstguard 
)

Definition at line 58 of file symex_assign.cpp.

◆  assign_struct_member()

template<bool use_update>
void symex_assignt::assign_struct_member ( const member_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
exprt::operandstguard 
)
private
Template Parameters
use_update use update_exprt instead of with_exprt when building expressions that modify components of an array or a struct

Definition at line 330 of file symex_assign.cpp.

◆  assign_symbol()

void symex_assignt::assign_symbol ( const ssa_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
const exprt::operandstguard 
)

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 266 of file symex_assign.cpp.

◆  assign_typecast()

void symex_assignt::assign_typecast ( const typecast_exprtlhs,
const expr_skeletontfull_lhs,
const exprtrhs,
exprt::operandstguard 
)
private

Definition at line 279 of file symex_assign.cpp.

Member Data Documentation

◆  assignment_type

symex_targett::assignment_typet symex_assignt::assignment_type
private

Definition at line 67 of file symex_assign.h.

◆  language_mode

const irep_idt& symex_assignt::language_mode
private

Definition at line 70 of file symex_assign.h.

◆  ns

const namespacet& symex_assignt::ns
private

Definition at line 68 of file symex_assign.h.

◆  shadow_memory

std::optional<shadow_memoryt> symex_assignt::shadow_memory
private

Definition at line 65 of file symex_assign.h.

◆  state

goto_symex_statet& symex_assignt::state
private

Definition at line 66 of file symex_assign.h.

◆  symex_config

const symex_configt& symex_assignt::symex_config
private

Definition at line 69 of file symex_assign.h.

◆  target

symex_targett& symex_assignt::target
private

Definition at line 71 of file symex_assign.h.


The documentation for this class was generated from the following files:

AltStyle によって変換されたページ (->オリジナル) /