void symex_target_equationt::assignment( const guardt &guard, const symbol_exprt &ssa_lhs, const symbol_exprt &original_lhs_object, const exprt &ssa_full_lhs, const exprt &original_full_lhs, const exprt &ssa_rhs, const sourcet &source, assignment_typet assignment_type) { assert(ssa_lhs.is_not_nil()); SSA_steps.push_back(SSA_stept()); SSA_stept &SSA_step=SSA_steps.back(); SSA_step.guard_expr=guard.as_expr(); SSA_step.ssa_lhs=ssa_lhs; SSA_step.original_lhs_object=original_lhs_object; SSA_step.ssa_full_lhs=ssa_full_lhs; SSA_step.original_full_lhs=original_full_lhs; SSA_step.ssa_rhs=ssa_rhs; SSA_step.assignment_type=assignment_type; SSA_step.cond_expr=equal_exprt(SSA_step.ssa_lhs, SSA_step.ssa_rhs); SSA_step.type=goto_trace_stept::ASSIGNMENT; SSA_step.source=source; }
void symex_target_equationt::decl( const guardt &guard, const symbol_exprt &ssa_lhs, const symbol_exprt &original_lhs_object, const sourcet &source) { assert(ssa_lhs.is_not_nil()); SSA_steps.push_back(SSA_stept()); SSA_stept &SSA_step=SSA_steps.back(); SSA_step.guard_expr=guard.as_expr(); SSA_step.ssa_lhs=ssa_lhs; SSA_step.ssa_full_lhs=ssa_lhs; SSA_step.original_lhs_object=original_lhs_object; SSA_step.original_full_lhs=original_lhs_object; SSA_step.type=goto_trace_stept::DECL; SSA_step.source=source; // the condition is trivially true, and only // there so we see the symbols SSA_step.cond_expr=equal_exprt(SSA_step.ssa_lhs, SSA_step.ssa_lhs); }