forked from OSchip/llvm-project
parent
ba97c37ccd
commit
c11bf80265
|
@ -111,7 +111,7 @@ int main(int argc, const char **argv, char * const *envp) {
|
|||
// We expect to get back exactly one command job, if we didn't something
|
||||
// failed. Extract that job from the compilation.
|
||||
const driver::JobList &Jobs = C->getJobs();
|
||||
if (Jobs.size() != 1 || !isa<driver::Command>(*Jobs.begin())) {
|
||||
if (Jobs.size() != 1 || !isa<driver::Command>(**Jobs.begin())) {
|
||||
SmallString<256> Msg;
|
||||
llvm::raw_svector_ostream OS(Msg);
|
||||
Jobs.Print(OS, "; ", true);
|
||||
|
@ -119,14 +119,14 @@ int main(int argc, const char **argv, char * const *envp) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
const driver::Command *Cmd = cast<driver::Command>(*Jobs.begin());
|
||||
if (llvm::StringRef(Cmd->getCreator().getName()) != "clang") {
|
||||
const driver::Command &Cmd = cast<driver::Command>(**Jobs.begin());
|
||||
if (llvm::StringRef(Cmd.getCreator().getName()) != "clang") {
|
||||
Diags.Report(diag::err_fe_expected_clang_command);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Initialize a compiler invocation object from the clang (-cc1) arguments.
|
||||
const driver::ArgStringList &CCArgs = Cmd->getArguments();
|
||||
const driver::ArgStringList &CCArgs = Cmd.getArguments();
|
||||
std::unique_ptr<CompilerInvocation> CI(new CompilerInvocation);
|
||||
CompilerInvocation::CreateFromArgs(*CI,
|
||||
const_cast<const char **>(CCArgs.data()),
|
||||
|
|
|
@ -94,7 +94,7 @@ public:
|
|||
JobList &getJobs() { return Jobs; }
|
||||
const JobList &getJobs() const { return Jobs; }
|
||||
|
||||
void addCommand(Command *C) { Jobs.addJob(C); }
|
||||
void addCommand(std::unique_ptr<Command> C) { Jobs.addJob(std::move(C)); }
|
||||
|
||||
const llvm::opt::ArgStringList &getTempFiles() const { return TempFiles; }
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ class FallbackCommand : public Command {
|
|||
public:
|
||||
FallbackCommand(const Action &Source_, const Tool &Creator_,
|
||||
const char *Executable_, const ArgStringList &Arguments_,
|
||||
Command *Fallback_);
|
||||
std::unique_ptr<Command> Fallback_);
|
||||
|
||||
void Print(llvm::raw_ostream &OS, const char *Terminator, bool Quote,
|
||||
bool CrashReport = false) const override;
|
||||
|
@ -123,7 +123,7 @@ private:
|
|||
/// JobList - A sequence of jobs to perform.
|
||||
class JobList : public Job {
|
||||
public:
|
||||
typedef SmallVector<Job*, 4> list_type;
|
||||
typedef SmallVector<std::unique_ptr<Job>, 4> list_type;
|
||||
typedef list_type::size_type size_type;
|
||||
typedef list_type::iterator iterator;
|
||||
typedef list_type::const_iterator const_iterator;
|
||||
|
@ -133,13 +133,13 @@ private:
|
|||
|
||||
public:
|
||||
JobList();
|
||||
virtual ~JobList();
|
||||
virtual ~JobList() {}
|
||||
|
||||
void Print(llvm::raw_ostream &OS, const char *Terminator,
|
||||
bool Quote, bool CrashReport = false) const override;
|
||||
|
||||
/// Add a job to the list (taking ownership).
|
||||
void addJob(Job *J) { Jobs.push_back(J); }
|
||||
void addJob(std::unique_ptr<Job> J) { Jobs.push_back(std::move(J)); }
|
||||
|
||||
/// Clear the job list.
|
||||
void clear();
|
||||
|
|
|
@ -136,9 +136,9 @@ int Command::Execute(const StringRef **Redirects, std::string *ErrMsg,
|
|||
FallbackCommand::FallbackCommand(const Action &Source_, const Tool &Creator_,
|
||||
const char *Executable_,
|
||||
const ArgStringList &Arguments_,
|
||||
Command *Fallback_)
|
||||
: Command(Source_, Creator_, Executable_, Arguments_), Fallback(Fallback_) {
|
||||
}
|
||||
std::unique_ptr<Command> Fallback_)
|
||||
: Command(Source_, Creator_, Executable_, Arguments_),
|
||||
Fallback(std::move(Fallback_)) {}
|
||||
|
||||
void FallbackCommand::Print(raw_ostream &OS, const char *Terminator,
|
||||
bool Quote, bool CrashReport) const {
|
||||
|
@ -175,17 +175,10 @@ int FallbackCommand::Execute(const StringRef **Redirects, std::string *ErrMsg,
|
|||
|
||||
JobList::JobList() : Job(JobListClass) {}
|
||||
|
||||
JobList::~JobList() {
|
||||
for (iterator it = begin(), ie = end(); it != ie; ++it)
|
||||
delete *it;
|
||||
}
|
||||
|
||||
void JobList::Print(raw_ostream &OS, const char *Terminator, bool Quote,
|
||||
bool CrashReport) const {
|
||||
for (const_iterator it = begin(), ie = end(); it != ie; ++it)
|
||||
(*it)->Print(OS, Terminator, Quote, CrashReport);
|
||||
}
|
||||
|
||||
void JobList::clear() {
|
||||
DeleteContainerPointers(Jobs);
|
||||
}
|
||||
void JobList::clear() { Jobs.clear(); }
|
||||
|
|
|
@ -2391,10 +2391,10 @@ static void SplitDebugInfo(const ToolChain &TC, Compilation &C,
|
|||
Args.MakeArgString(TC.GetProgramPath("objcopy"));
|
||||
|
||||
// First extract the dwo sections.
|
||||
C.addCommand(new Command(JA, T, Exec, ExtractArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, T, Exec, ExtractArgs));
|
||||
|
||||
// Then remove them from the original .o file.
|
||||
C.addCommand(new Command(JA, T, Exec, StripArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, T, Exec, StripArgs));
|
||||
}
|
||||
|
||||
/// \brief Vectorize at all optimization levels greater than 1 except for -Oz.
|
||||
|
@ -4475,11 +4475,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
if (Args.hasArg(options::OPT__SLASH_fallback) &&
|
||||
Output.getType() == types::TY_Object &&
|
||||
(InputType == types::TY_C || InputType == types::TY_CXX)) {
|
||||
Command *CLCommand = getCLFallback()->GetCommand(C, JA, Output, Inputs,
|
||||
Args, LinkingOutput);
|
||||
C.addCommand(new FallbackCommand(JA, *this, Exec, CmdArgs, CLCommand));
|
||||
auto CLCommand =
|
||||
getCLFallback()->GetCommand(C, JA, Output, Inputs, Args, LinkingOutput);
|
||||
C.addCommand(llvm::make_unique<FallbackCommand>(JA, *this, Exec, CmdArgs,
|
||||
std::move(CLCommand)));
|
||||
} else {
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
|
||||
|
@ -4914,7 +4915,7 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(Input.getFilename());
|
||||
|
||||
const char *Exec = getToolChain().getDriver().getClangProgramPath();
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
|
||||
// Handle the debug info splitting at object creation time if we're
|
||||
// creating an object.
|
||||
|
@ -5039,7 +5040,7 @@ void gcc::Common::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath(GCCName));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void gcc::Preprocess::RenderExtraToolArgs(const JobAction &JA,
|
||||
|
@ -5135,7 +5136,7 @@ void hexagon::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *GCCName = "hexagon-as";
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath(GCCName));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void hexagon::Link::RenderExtraToolArgs(const JobAction &JA,
|
||||
|
@ -5301,7 +5302,8 @@ void hexagon::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
|
||||
std::string Linker = ToolChain.GetProgramPath("hexagon-ld");
|
||||
C.addCommand(new Command(JA, *this, Args.MakeArgString(Linker), CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Args.MakeArgString(Linker),
|
||||
CmdArgs));
|
||||
}
|
||||
// Hexagon tools end.
|
||||
|
||||
|
@ -5562,7 +5564,7 @@ void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void darwin::MachOTool::anchor() {}
|
||||
|
@ -5791,7 +5793,7 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("touch"));
|
||||
CmdArgs.push_back(Output.getFilename());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -5889,7 +5891,7 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void darwin::Lipo::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -5911,7 +5913,7 @@ void darwin::Lipo::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("lipo"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void darwin::Dsymutil::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -5931,7 +5933,7 @@ void darwin::Dsymutil::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("dsymutil"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void darwin::VerifyDebug::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -5954,7 +5956,7 @@ void darwin::VerifyDebug::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("dwarfdump"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void solaris::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -5974,7 +5976,7 @@ void solaris::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void solaris::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6079,7 +6081,7 @@ void solaris::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void openbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6149,7 +6151,7 @@ void openbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void openbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6281,7 +6283,7 @@ void openbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void bitrig::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6301,7 +6303,7 @@ void bitrig::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void bitrig::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6417,7 +6419,7 @@ void bitrig::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void freebsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6498,7 +6500,7 @@ void freebsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6681,7 +6683,7 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void netbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6755,7 +6757,7 @@ void netbsd::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString((getToolChain().GetProgramPath("as")));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -6963,7 +6965,7 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
addProfileRT(getToolChain(), Args, CmdArgs);
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -7136,7 +7138,7 @@ void gnutools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
|
||||
// Handle the debug info splitting at object creation time if we're
|
||||
// creating an object.
|
||||
|
@ -7514,7 +7516,8 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
}
|
||||
|
||||
C.addCommand(new Command(JA, *this, ToolChain.Linker.c_str(), CmdArgs));
|
||||
C.addCommand(
|
||||
llvm::make_unique<Command>(JA, *this, ToolChain.Linker.c_str(), CmdArgs));
|
||||
}
|
||||
|
||||
void minix::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -7533,7 +7536,7 @@ void minix::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void minix::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -7587,7 +7590,7 @@ void minix::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
/// DragonFly Tools
|
||||
|
@ -7615,7 +7618,7 @@ void dragonfly::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("as"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void dragonfly::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -7765,7 +7768,7 @@ void dragonfly::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
addProfileRT(getToolChain(), Args, CmdArgs);
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetLinkerPath());
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
static void addSanitizerRTWindows(const ToolChain &TC, const ArgList &Args,
|
||||
|
@ -7842,7 +7845,7 @@ void visualstudio::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("link.exe"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void visualstudio::Compile::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -7882,11 +7885,10 @@ static std::string FindFallback(const char *FallbackName,
|
|||
return FallbackName;
|
||||
}
|
||||
|
||||
Command *visualstudio::Compile::GetCommand(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const ArgList &Args,
|
||||
const char *LinkingOutput) const {
|
||||
std::unique_ptr<Command> visualstudio::Compile::GetCommand(
|
||||
Compilation &C, const JobAction &JA, const InputInfo &Output,
|
||||
const InputInfoList &Inputs, const ArgList &Args,
|
||||
const char *LinkingOutput) const {
|
||||
ArgStringList CmdArgs;
|
||||
CmdArgs.push_back("/nologo");
|
||||
CmdArgs.push_back("/c"); // Compile only.
|
||||
|
@ -7965,7 +7967,8 @@ Command *visualstudio::Compile::GetCommand(Compilation &C, const JobAction &JA,
|
|||
|
||||
const Driver &D = getToolChain().getDriver();
|
||||
std::string Exec = FindFallback("cl.exe", D.getClangProgramPath());
|
||||
return new Command(JA, *this, Args.MakeArgString(Exec), CmdArgs);
|
||||
return llvm::make_unique<Command>(JA, *this, Args.MakeArgString(Exec),
|
||||
CmdArgs);
|
||||
}
|
||||
|
||||
|
||||
|
@ -8002,7 +8005,7 @@ void XCore::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
CmdArgs.push_back(II.getFilename());
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("xcc"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
||||
void XCore::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
|
@ -8029,5 +8032,5 @@ void XCore::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs);
|
||||
|
||||
const char *Exec = Args.MakeArgString(getToolChain().GetProgramPath("xcc"));
|
||||
C.addCommand(new Command(JA, *this, Exec, CmdArgs));
|
||||
C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs));
|
||||
}
|
||||
|
|
|
@ -584,11 +584,11 @@ namespace visualstudio {
|
|||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const override;
|
||||
|
||||
Command *GetCommand(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const;
|
||||
std::unique_ptr<Command> GetCommand(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
const llvm::opt::ArgList &TCArgs,
|
||||
const char *LinkingOutput) const;
|
||||
};
|
||||
} // end namespace visualstudio
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ clang::createInvocationFromCommandLine(ArrayRef<const char *> ArgList,
|
|||
// We expect to get back exactly one command job, if we didn't something
|
||||
// failed.
|
||||
const driver::JobList &Jobs = C->getJobs();
|
||||
if (Jobs.size() != 1 || !isa<driver::Command>(*Jobs.begin())) {
|
||||
if (Jobs.size() != 1 || !isa<driver::Command>(**Jobs.begin())) {
|
||||
SmallString<256> Msg;
|
||||
llvm::raw_svector_ostream OS(Msg);
|
||||
Jobs.Print(OS, "; ", true);
|
||||
|
@ -71,13 +71,13 @@ clang::createInvocationFromCommandLine(ArrayRef<const char *> ArgList,
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
const driver::Command *Cmd = cast<driver::Command>(*Jobs.begin());
|
||||
if (StringRef(Cmd->getCreator().getName()) != "clang") {
|
||||
const driver::Command &Cmd = cast<driver::Command>(**Jobs.begin());
|
||||
if (StringRef(Cmd.getCreator().getName()) != "clang") {
|
||||
Diags->Report(diag::err_fe_expected_clang_command);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const ArgStringList &CCArgs = Cmd->getArguments();
|
||||
const ArgStringList &CCArgs = Cmd.getArguments();
|
||||
std::unique_ptr<CompilerInvocation> CI(new CompilerInvocation());
|
||||
if (!CompilerInvocation::CreateFromArgs(*CI,
|
||||
const_cast<const char **>(CCArgs.data()),
|
||||
|
|
|
@ -252,11 +252,11 @@ static bool stripPositionalArgs(std::vector<const char *> Args,
|
|||
for (driver::JobList::const_iterator I = Jobs.begin(), E = Jobs.end(); I != E;
|
||||
++I) {
|
||||
if ((*I)->getKind() == driver::Job::CommandClass) {
|
||||
const driver::Command *Cmd = cast<driver::Command>(*I);
|
||||
const driver::Command &Cmd = cast<driver::Command>(**I);
|
||||
// Collect only for Assemble jobs. If we do all jobs we get duplicates
|
||||
// since Link jobs point to Assemble jobs as inputs.
|
||||
if (Cmd->getSource().getKind() == driver::Action::AssembleJobClass)
|
||||
CompileAnalyzer.run(&Cmd->getSource());
|
||||
if (Cmd.getSource().getKind() == driver::Action::AssembleJobClass)
|
||||
CompileAnalyzer.run(&Cmd.getSource());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ static const llvm::opt::ArgStringList *getCC1Arguments(
|
|||
// We expect to get back exactly one Command job, if we didn't something
|
||||
// failed. Extract that job from the Compilation.
|
||||
const clang::driver::JobList &Jobs = Compilation->getJobs();
|
||||
if (Jobs.size() != 1 || !isa<clang::driver::Command>(*Jobs.begin())) {
|
||||
if (Jobs.size() != 1 || !isa<clang::driver::Command>(**Jobs.begin())) {
|
||||
SmallString<256> error_msg;
|
||||
llvm::raw_svector_ostream error_stream(error_msg);
|
||||
Jobs.Print(error_stream, "; ", true);
|
||||
|
@ -79,14 +79,14 @@ static const llvm::opt::ArgStringList *getCC1Arguments(
|
|||
}
|
||||
|
||||
// The one job we find should be to invoke clang again.
|
||||
const clang::driver::Command *Cmd =
|
||||
cast<clang::driver::Command>(*Jobs.begin());
|
||||
if (StringRef(Cmd->getCreator().getName()) != "clang") {
|
||||
const clang::driver::Command &Cmd =
|
||||
cast<clang::driver::Command>(**Jobs.begin());
|
||||
if (StringRef(Cmd.getCreator().getName()) != "clang") {
|
||||
Diagnostics->Report(clang::diag::err_fe_expected_clang_command);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return &Cmd->getArguments();
|
||||
return &Cmd.getArguments();
|
||||
}
|
||||
|
||||
/// \brief Returns a clang build invocation initialized from the CC1 flags.
|
||||
|
|
Loading…
Reference in New Issue