50int main(
int argc,
const char **argv)
59 if(argv==
nullptr || argc<1)
61 std::cerr <<
"failed to determine base name\n";
67 std::string base_name=
73 if(base_name ==
"goto-cl" || base_name ==
"cl")
81 else if(base_name ==
"goto-link" || base_name ==
"link")
88 else if(base_name==
"goto-cw" ||
89 base_name==
"goto-cw-link")
95 return cw_mode.main(argc, argv);
97 else if(base_name==
"goto-armcc" ||
98 base_name==
"goto-armlink")
107 else if(base_name==
"goto-clang" ||
108 base_name.find(
"goto-gcc")!=std::string::npos)
117 else if(base_name.find(
"goto-ld")!=std::string::npos)
122 return ld_mode.main(argc, argv);
124 else if(base_name.find(
"goto-bcc")!=std::string::npos)
133 else if(base_name.find(
"goto-as86")!=std::string::npos)
139 return as_mode.main(argc, argv);
141 else if(base_name.find(
"goto-as")!=std::string::npos)
146 return as_mode.main(argc, argv);
static abstract_object_pointert transform(const exprt &expr, const std::vector< abstract_object_pointert > &operands, const abstract_environmentt &environment, const namespacet &ns)
A special command line object to mimic ARM's armcc.
Base class for command line interpretation for CL.
A special command line object for as86 (of Bruce's C Compiler) Author: Michael Tautschnig Date: July ...
A special command line object for GNU Assembler Author: Michael Tautschnig Date: July 2016.
A special command line object for Bruce's C Compiler Author: Michael Tautschnig Date: July 2016.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Base class for command line interpretation.
A special command line object for the gcc-like options.
Base class for command line interpretation.
std::string get_base_name(const std::string &in, bool strip_suffix)
cleans a filename from path and extension
std::string to_lower_string(const std::string &s)
A special command line object for the ld-like options.
Base class for command line interpretation.
A special command line object for the gcc-like options.
A special command line object for LINK options.
output_type narrow(input_type input)
Run-time checked narrowing cast.
std::vector< std::string > narrow_argv(int argc, const wchar_t **argv_wide)
std::vector< const char * > to_c_str_array(It b, It e)