Esempio n. 1
0
void symex_slicet::slice(symex_target_equationt::SSA_stept &SSA_step)
{
  get_symbols(SSA_step.guard_expr);

  switch(SSA_step.type)
  {
  case goto_trace_stept::ASSERT:
    get_symbols(SSA_step.cond_expr);
    break;

  case goto_trace_stept::ASSUME:
    get_symbols(SSA_step.cond_expr);
    break;

  case goto_trace_stept::LOCATION:
    // ignore
    break;

  case goto_trace_stept::ASSIGNMENT:
    slice_assignment(SSA_step);
    break;

  case goto_trace_stept::OUTPUT:
    break;

  default:
    assert(false);  
  }
}
Esempio n. 2
0
void symex_slicet::slice(symex_target_equationt::SSA_stept &SSA_step)
{
  get_symbols(SSA_step.guard);

  switch(SSA_step.type)
  {
  case goto_trace_stept::ASSERT:
    get_symbols(SSA_step.cond_expr);
    break;

  case goto_trace_stept::ASSUME:
    get_symbols(SSA_step.cond_expr);
    break;

  case goto_trace_stept::LOCATION:
    // ignore
    break;

  case goto_trace_stept::ASSIGNMENT:
    slice_assignment(SSA_step);
    break;

  case goto_trace_stept::DECL:
    slice_decl(SSA_step);
    break;
    
  case goto_trace_stept::OUTPUT:
  case goto_trace_stept::INPUT:
    break;
    
  case goto_trace_stept::DEAD:
    // ignore for now
    break;
    
  case goto_trace_stept::CONSTRAINT:
  case goto_trace_stept::SHARED_READ:
  case goto_trace_stept::SHARED_WRITE:
  case goto_trace_stept::ATOMIC_BEGIN:
  case goto_trace_stept::ATOMIC_END:
  case goto_trace_stept::SPAWN:
  case goto_trace_stept::MEMORY_BARRIER:
    // ignore for now
    break;
    
  case goto_trace_stept::FUNCTION_CALL:
  case goto_trace_stept::FUNCTION_RETURN:
    // ignore for now
    break;
    
  default:
    assert(false);  
  }
}