Beispiel #1
0
goto_programt::targett cegis_assign_user_variable(const symbol_tablet &st,
    goto_functionst &gf, const goto_programt::targett &insert_after_pos,
    const irep_idt &name, const exprt &value)
{
  const symbol_exprt lhs(st.lookup(name).symbol_expr());
  return cegis_assign(st, gf, insert_after_pos, lhs, value);
}
Beispiel #2
0
goto_programt::targett cegis_assign(const symbol_tablet &st,
    goto_functionst &gf, const goto_programt::targett &insert_after_pos,
    const exprt &lhs, const exprt &rhs)
{
  return cegis_assign(st, gf, insert_after_pos, lhs, rhs,
      default_cegis_source_location());
}
Beispiel #3
0
goto_programt::targett cegis_assign(const symbol_tablet &st,
    goto_functionst &gf, const goto_programt::targett &insert_after_pos,
    const exprt &lhs, const exprt &rhs, const source_locationt &loc)
{
  goto_programt &body=get_entry_body(gf);
  return cegis_assign(st, body, insert_after_pos, lhs, rhs, loc);
}
Beispiel #4
0
goto_programt::targett cegis_assign(const symbol_tablet &st,
    goto_programt &body, const goto_programt::targett &insert_after_pos,
    const exprt &lhs, const exprt &rhs, const source_locationt &loc)
{
  const goto_programt::targett assign=body.insert_after(insert_after_pos);
  cegis_assign(st, *assign, lhs, rhs, loc);
  return assign;
}
Beispiel #5
0
const symbolt &declare_global_meta_variable(symbol_tablet &st,
    goto_functionst &gf, const std::string &name, const exprt &value)
{
  const symbolt &symbol=declare_global_meta_variable(st, name, value.type());
  goto_programt &init_body=get_body(gf, CPROVER_INIT);
  goto_programt::instructionst &instrs=init_body.instructions;
  goto_programt::targett pos=instrs.begin();
  if (instrs.size() >= 2) pos=std::prev(init_body.instructions.end(), 2);
  const symbol_exprt lhs(symbol.symbol_expr());
  cegis_assign(st, init_body, pos, lhs, value, default_cegis_source_location());
  return symbol;
}
Beispiel #6
0
goto_programt::targett cegis_assign_local_variable(const symbol_tablet &st,
    goto_programt &body, const goto_programt::targett &insert_after_pos,
    const std::string &func_name, const std::string &var_name,
    const exprt &value)
{
  std::string name(func_name);
  name+=NS_SEP;
  name+=var_name;
  const symbol_exprt lhs(st.lookup(name).symbol_expr());
  const source_locationt loc(default_cegis_source_location());
  return cegis_assign(st, body, insert_after_pos, lhs, value, loc);
}
goto_programt::targett jsa_assign(const symbol_tablet &st, goto_functionst &gf,
    const goto_programt::targett &pos, const exprt &lhs, const exprt &rhs)
{
  const source_locationt loc(jsa_builtin_source_location());
  return cegis_assign(st, gf, pos, lhs, rhs, loc);
}