Ejemplo n.º 1
0
size_t default_constant_strategy(invariant_programt &program,
    const size_t max_length)
{
  const typet type(cegis_default_integer_type());
  const bv_spect spec(type);
  add_danger_constant(program, from_integer(spec.max_value().to_ulong(), type));
  add_danger_constant(program, from_integer(0u, type));
  return std::max(size_t(1u), literals_constant_strategy(program, max_length));
  //return 2u + literals_constant_strategy(program, max_length);
  /*for (size_t i=0; i < max_length; ++i)
   {
   const side_effect_expr_nondett value(type);
   std::string name(NONDET_PREFIX);
   add_danger_constant(program, name+=integer2string(i), value);
   }
   return 2u + max_length + literals_constant_strategy(program, max_length);*/
}
Ejemplo n.º 2
0
size_t literals_constant_strategy(invariant_programt &program,
    const size_t max_length)
{
  const std::vector<constant_exprt> lit(collect_literal_constants(program));
  size_t max_word_width=0u;
  for (const constant_exprt &expr : lit)
  {
    add_danger_constant(program, expr);
    // XXX: Add negation of every constant?
    // if (!expr.is_zero()) add_danger_constant(program, unary_minus_exprt(expr));
    max_word_width=std::max(max_word_width, get_min_word_width(expr));
  }
  return max_word_width;
}