diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-09-13 17:03:58 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-09-13 17:03:58 +0000 |
commit | 9707aa74d6641078e00e44a7885b195113d006c6 (patch) | |
tree | 8444af1929a15fadf283e358b3bbf2608a47bb61 /clang/lib | |
parent | 208eecd57fd7f2b2072f70f8fe81f1f5dd68267a (diff) | |
download | llvm-9707aa74d6641078e00e44a7885b195113d006c6.zip llvm-9707aa74d6641078e00e44a7885b195113d006c6.tar.gz llvm-9707aa74d6641078e00e44a7885b195113d006c6.tar.bz2 |
Update users of llvm::sys::ExecuteAndWait etc.
Summary: Clang part of https://reviews.llvm.org/D37563
Reviewers: bkramer
Subscribers: vsk, cfe-commits
Differential Revision: https://reviews.llvm.org/D37564
llvm-svn: 313156
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/Compilation.cpp | 19 | ||||
-rw-r--r-- | clang/lib/Driver/Job.cpp | 10 | ||||
-rw-r--r-- | clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp | 3 |
3 files changed, 10 insertions, 22 deletions
diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp index 3ddd648..bffcf70 100644 --- a/clang/lib/Driver/Compilation.cpp +++ b/clang/lib/Driver/Compilation.cpp @@ -26,8 +26,8 @@ Compilation::Compilation(const Driver &D, const ToolChain &_DefaultToolChain, InputArgList *_Args, DerivedArgList *_TranslatedArgs, bool ContainsError) : TheDriver(D), DefaultToolChain(_DefaultToolChain), ActiveOffloadMask(0u), - Args(_Args), TranslatedArgs(_TranslatedArgs), Redirects(nullptr), - ForDiagnostics(false), ContainsError(ContainsError) { + Args(_Args), TranslatedArgs(_TranslatedArgs), ForDiagnostics(false), + ContainsError(ContainsError) { // The offloading host toolchain is the default tool chain. OrderedOffloadingToolchains.insert( std::make_pair(Action::OFK_Host, &DefaultToolChain)); @@ -41,14 +41,6 @@ Compilation::~Compilation() { for (auto Arg : TCArgs) if (Arg.second != TranslatedArgs) delete Arg.second; - - // Free redirections of stdout/stderr. - if (Redirects) { - delete Redirects[0]; - delete Redirects[1]; - delete Redirects[2]; - delete [] Redirects; - } } const DerivedArgList & @@ -214,16 +206,13 @@ void Compilation::initCompilationForDiagnostics() { TranslatedArgs->ClaimAllArgs(); // Redirect stdout/stderr to /dev/null. - Redirects = new const StringRef*[3](); - Redirects[0] = nullptr; - Redirects[1] = new StringRef(); - Redirects[2] = new StringRef(); + Redirects = {None, {""}, {""}}; } StringRef Compilation::getSysRoot() const { return getDriver().SysRoot; } -void Compilation::Redirect(const StringRef** Redirects) { +void Compilation::Redirect(ArrayRef<Optional<StringRef>> Redirects) { this->Redirects = Redirects; } diff --git a/clang/lib/Driver/Job.cpp b/clang/lib/Driver/Job.cpp index 8b85680..b26a4cc 100644 --- a/clang/lib/Driver/Job.cpp +++ b/clang/lib/Driver/Job.cpp @@ -307,8 +307,8 @@ void Command::setEnvironment(llvm::ArrayRef<const char *> NewEnvironment) { Environment.push_back(nullptr); } -int Command::Execute(const StringRef **Redirects, std::string *ErrMsg, - bool *ExecutionFailed) const { +int Command::Execute(ArrayRef<Optional<StringRef>> Redirects, + std::string *ErrMsg, bool *ExecutionFailed) const { SmallVector<const char*, 128> Argv; const char **Envp; @@ -378,8 +378,8 @@ static bool ShouldFallback(int ExitCode) { return ExitCode != 0; } -int FallbackCommand::Execute(const StringRef **Redirects, std::string *ErrMsg, - bool *ExecutionFailed) const { +int FallbackCommand::Execute(ArrayRef<Optional<StringRef>> Redirects, + std::string *ErrMsg, bool *ExecutionFailed) const { int PrimaryStatus = Command::Execute(Redirects, ErrMsg, ExecutionFailed); if (!ShouldFallback(PrimaryStatus)) return PrimaryStatus; @@ -410,7 +410,7 @@ void ForceSuccessCommand::Print(raw_ostream &OS, const char *Terminator, OS << " || (exit 0)" << Terminator; } -int ForceSuccessCommand::Execute(const StringRef **Redirects, +int ForceSuccessCommand::Execute(ArrayRef<Optional<StringRef>> Redirects, std::string *ErrMsg, bool *ExecutionFailed) const { int Status = Command::Execute(Redirects, ErrMsg, ExecutionFailed); diff --git a/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp b/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp index c47edc7..fccea9e 100644 --- a/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp +++ b/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp @@ -854,8 +854,7 @@ UbigraphViz::~UbigraphViz() { Ubiviz = *Path; const char *args[] = {Ubiviz.c_str(), Filename.c_str(), nullptr}; - if (llvm::sys::ExecuteAndWait(Ubiviz, &args[0], nullptr, nullptr, 0, 0, - &ErrMsg)) { + if (llvm::sys::ExecuteAndWait(Ubiviz, &args[0], nullptr, {}, 0, 0, &ErrMsg)) { llvm::errs() << "Error viewing graph: " << ErrMsg << "\n"; } |