48 int wmain(
int argc,
const wchar_t **argv_wide)
50 int 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")
79 return ms_cl_mode.
main(argc, argv);
81 else if(base_name ==
"goto-link" || base_name ==
"link")
86 return ms_link_mode.
main(argc, argv);
88 else if(base_name==
"goto-cw" ||
89 base_name==
"goto-cw-link")
94 cw_modet cw_mode(cmdline, base_name);
95 return cw_mode.
main(argc, argv);
97 else if(base_name==
"goto-armcc" ||
98 base_name==
"goto-armlink")
103 return armcc_mode.
main(argc, argv);
107 else if(base_name==
"goto-clang" ||
108 base_name.find(
"goto-gcc")!=std::string::npos)
114 gcc_modet gcc_mode(cmdline, base_name,
true);
115 return gcc_mode.
main(argc, argv);
117 else if(base_name.find(
"goto-ld")!=std::string::npos)
121 ld_modet ld_mode(cmdline, base_name);
122 return ld_mode.
main(argc, argv);
124 else if(base_name.find(
"goto-bcc")!=std::string::npos)
130 gcc_modet gcc_mode(cmdline, base_name,
true);
131 return gcc_mode.
main(argc, argv);
133 else if(base_name.find(
"goto-as86")!=std::string::npos)
138 as_modet as_mode(cmdline, base_name,
false);
139 return as_mode.
main(argc, argv);
141 else if(base_name.find(
"goto-as")!=std::string::npos)
145 as_modet as_mode(cmdline, base_name,
true);
146 return as_mode.
main(argc, argv);
152 gcc_modet gcc_mode(cmdline, base_name,
false);
153 return gcc_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.
int main(int argc, const char **argv)
starts the compiler
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
int main(int argc, const char **argv)
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)