示例#1
0
文件: config.cpp 项目: sarnold/cbmc
void configt::ansi_ct::set_from_symbol_table(const symbol_tablet &symbol_table)
{
  // maybe not compiled from C/C++
  if(symbol_table.symbols.find(CPROVER_PREFIX "architecture_" "int_width")==
     symbol_table.symbols.end())
    return;

  namespacet ns(symbol_table);

  int_width=from_ns(ns, "int_width");
  long_int_width=from_ns(ns, "long_int_width");
  bool_width=1*8;
  char_width=from_ns(ns, "char_width");
  short_int_width=from_ns(ns, "short_int_width");
  long_long_int_width=from_ns(ns, "long_long_int_width");
  pointer_width=from_ns(ns, "pointer_width");
  single_width=from_ns(ns, "single_width");
  double_width=from_ns(ns, "double_width");
  long_double_width=from_ns(ns, "long_double_width");
  wchar_t_width=from_ns(ns, "wchar_t_width");

  char_is_unsigned=from_ns(ns, "char_is_unsigned")!=0;
  wchar_t_is_unsigned=from_ns(ns, "wchar_t_is_unsigned")!=0;
  use_fixed_for_float=from_ns(ns, "fixed_for_float")!=0;
  // for_has_scope, single_precision_constant, rounding_mode not
  // stored in namespace

  alignment=from_ns(ns, "alignment");

  //memory_operand_size=from_ns(ns, "memory_operand_size");
  memory_operand_size=int_width/8;

  endianness=(endiannesst)from_ns(ns, "endianness");

  // os, arch not stored in namespace

  //NULL_is_zero=from_ns("NULL_is_zero");
  NULL_is_zero=true;

  // mode, preprocessor (and all preprocessor command line options),
  // lib, string_abstraction not stored in namespace
}
示例#2
0
void configt::ansi_ct::set_from_context(const contextt &context)
{
  namespacet ns(context);

  int_width=from_ns(ns, "int_width");
  long_int_width=from_ns(ns, "long_int_width");
  long_int_width=from_ns(ns, "long_int_width");
  char_width=from_ns(ns, "char_width");
  short_int_width=from_ns(ns, "short_int_width");
  long_long_int_width=from_ns(ns, "long_long_int_width");
  pointer_width=from_ns(ns, "pointer_width");
  single_width=from_ns(ns, "single_width");
  double_width=from_ns(ns, "double_width");
  long_double_width=from_ns(ns, "long_double_width");
  char_is_unsigned=from_ns(ns, "char_is_unsigned");
  wchar_t_width=from_ns(ns, "wchar_t_width");
  alignment=from_ns(ns, "alignment");
  use_fixed_for_float=from_ns(ns, "fixed_for_float");
  endianness=(endiannesst)from_ns(ns, "endianness");

  //memory_operand_size=from_ns(ns, "memory_operand_size");
  memory_operand_size=int_width/8;
}