14#include "llvm/Option/ArgList.h"
29 const char *LinkingOutput)
const {
31 ArgStringList CmdArgs;
33 CmdArgs.push_back(
"-o");
36 CmdArgs.push_back(
"-c");
38 if (Args.hasArg(options::OPT_v))
39 CmdArgs.push_back(
"-v");
41 if (Arg *A = Args.getLastArg(options::OPT_g_Group))
42 if (!A->getOption().matches(options::OPT_g0))
43 CmdArgs.push_back(
"-g");
45 if (Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm,
47 CmdArgs.push_back(
"-fverbose-asm");
49 Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler);
51 for (
const auto &II : Inputs)
52 CmdArgs.push_back(II.getFilename());
54 const char *Exec = Args.MakeArgString(
getToolChain().GetProgramPath(
"xcc"));
56 Exec, CmdArgs, Inputs, Output));
63 const char *LinkingOutput)
const {
64 ArgStringList CmdArgs;
68 CmdArgs.push_back(
"-o");
72 if (Args.hasArg(options::OPT_v))
73 CmdArgs.push_back(
"-v");
76 if (Args.hasFlag(options::OPT_fexceptions, options::OPT_fno_exceptions,
78 CmdArgs.push_back(
"-fexceptions");
82 const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath(
"xcc"));
84 Exec, CmdArgs, Inputs, Output));