Example #1
0
int wmain(int argc, const wchar_t **argv_wide)
{
  const char **argv=narrow_argv(argc, argv_wide);
#else
int main(int argc, const char **argv)
{
#endif
  goto_analyzer_parse_optionst parse_options(argc, argv);

  return parse_options.main();
}
Example #2
0
int wmain(int argc, const wchar_t **argv_wide)
{
  const char **argv=narrow_argv(argc, argv_wide);
#else
int main(int argc, const char **argv)
{
#endif
  cegis_parse_optionst parse_options(argc, argv);

  int res=parse_options.main();

  #ifdef IREP_HASH_STATS
  std::cout << "IREP_HASH_CNT=" << irep_hash_cnt << std::endl;
  std::cout << "IREP_CMP_CNT=" << irep_cmp_cnt << std::endl;
  std::cout << "IREP_CMP_NE_CNT=" << irep_cmp_ne_cnt << std::endl;
  #endif

  return res;
}
Example #3
0
int main(int argc, const char **argv)
#endif
{
  #ifdef _MSC_VER
  const char **argv=narrow_argv(argc, argv_wide);
  #endif

  if(argv==nullptr || argc<1)
  {
    std::cerr << "failed to determine base name\n";
    return 1;
  }

  #ifdef _MSC_VER
  // we do 'to_lower_string' because of Windows
  std::string base_name=
    to_lower_string(get_base_name(argv[0], true));
  #else
  std::string base_name=get_base_name(argv[0], false);
  #endif

  if(base_name=="goto-link" || base_name=="link" ||
     base_name=="goto-cl" || base_name=="cl")
  {
    // this is the Visual Studio personality
    ms_cl_cmdlinet cmdline;
    cmdline.parse_env();
    ms_cl_modet ms_cl_mode(cmdline, base_name);
    return ms_cl_mode.main(argc, argv);
  }
  else if(base_name=="goto-cw" ||
          base_name=="goto-cw-link")
  {
    // this is the CodeWarrior personality,
    // but we use the gcc command line interface
    gcc_cmdlinet cmdline;
    cw_modet cw_mode(cmdline, base_name);
    return cw_mode.main(argc, argv);
  }
  else if(base_name=="goto-armcc" ||
          base_name=="goto-armlink")
  {
    // this is the armcc personality
    armcc_cmdlinet cmdline;
    armcc_modet armcc_mode(cmdline, base_name);
    return armcc_mode.main(argc, argv);
  }
  // handle GCC names like x86_64-apple-darwin14-llvm-gcc-4.2
  // via x86_64-apple-darwin14-llvm-goto-gcc-4.2
  else if(base_name=="goto-clang" ||
          base_name.find("goto-gcc")!=std::string::npos)
  {
    // this produces ELF/Mach-O "hybrid binaries",
    // with a GCC-style command-line interface,
    // but also disables CPROVER language extensions
    gcc_cmdlinet cmdline;
    gcc_modet gcc_mode(cmdline, base_name, true);
    return gcc_mode.main(argc, argv);
  }
  else if(base_name.find("goto-ld")!=std::string::npos)
  {
    // this simulates "ld" for linking
    ld_cmdlinet cmdline;
    gcc_modet gcc_mode(cmdline, base_name, true);
    return gcc_mode.main(argc, argv);
  }
  else if(base_name.find("goto-bcc")!=std::string::npos)
  {
    // this simulates Bruce's C Compiler
    bcc_cmdlinet cmdline;
    // bcc does not build ELF objects -- hybrid mode is used
    // with -S only
    gcc_modet gcc_mode(cmdline, base_name, true);
    return gcc_mode.main(argc, argv);
  }
  else if(base_name.find("goto-as86")!=std::string::npos)
  {
    // assembler used by Bruce's C Compiler
    as86_cmdlinet cmdline;
    // as86 does not build ELF objects, no hybrid binaries
    as_modet as_mode(cmdline, base_name, false);
    return as_mode.main(argc, argv);
  }
  else if(base_name.find("goto-as")!=std::string::npos)
  {
    // GNU assembler
    as_cmdlinet cmdline;
    as_modet as_mode(cmdline, base_name, true);
    return as_mode.main(argc, argv);
  }
  else
  {
    // the default personality is GCC-style
    gcc_cmdlinet cmdline;
    gcc_modet gcc_mode(cmdline, base_name, false);
    return gcc_mode.main(argc, argv);
  }
}
Example #4
0
File: satabs.cpp Project: olivo/BP
int wmain(int argc, const wchar_t **argv_wide)
{
  const char **argv=narrow_argv(argc, argv_wide);
  cmdline_optionst cmdline_options(argc, argv); 
  return cmdline_options.main();
}
Example #5
0
int wmain(int argc, const wchar_t **argv_wide)
{
  const char **argv=narrow_argv(argc, argv_wide);
  clobber_parse_optionst parse_options(argc, argv);
  return parse_options.main();
}