From 044eb2f6afba375a914ac9d8024f8f5142bb912e Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 18 Dec 2017 20:10:56 +0000 Subject: Vendor import of llvm trunk r321017: https://llvm.org/svn/llvm-project/llvm/trunk@321017 --- lib/Support/Program.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'lib/Support/Program.cpp') diff --git a/lib/Support/Program.cpp b/lib/Support/Program.cpp index 34e336b354d6..4212323bc0e1 100644 --- a/lib/Support/Program.cpp +++ b/lib/Support/Program.cpp @@ -23,20 +23,21 @@ using namespace sys; //=== independent code. //===----------------------------------------------------------------------===// -static bool Execute(ProcessInfo &PI, StringRef Program, const char **args, - const char **env, const StringRef **Redirects, - unsigned memoryLimit, std::string *ErrMsg); +static bool Execute(ProcessInfo &PI, StringRef Program, const char **Args, + const char **Env, ArrayRef> Redirects, + unsigned MemoryLimit, std::string *ErrMsg); -int sys::ExecuteAndWait(StringRef Program, const char **args, const char **envp, - const StringRef **redirects, unsigned secondsToWait, - unsigned memoryLimit, std::string *ErrMsg, - bool *ExecutionFailed) { +int sys::ExecuteAndWait(StringRef Program, const char **Args, const char **Envp, + ArrayRef> Redirects, + unsigned SecondsToWait, unsigned MemoryLimit, + std::string *ErrMsg, bool *ExecutionFailed) { + assert(Redirects.empty() || Redirects.size() == 3); ProcessInfo PI; - if (Execute(PI, Program, args, envp, redirects, memoryLimit, ErrMsg)) { + if (Execute(PI, Program, Args, Envp, Redirects, MemoryLimit, ErrMsg)) { if (ExecutionFailed) *ExecutionFailed = false; ProcessInfo Result = Wait( - PI, secondsToWait, /*WaitUntilTerminates=*/secondsToWait == 0, ErrMsg); + PI, SecondsToWait, /*WaitUntilTerminates=*/SecondsToWait == 0, ErrMsg); return Result.ReturnCode; } @@ -46,14 +47,16 @@ int sys::ExecuteAndWait(StringRef Program, const char **args, const char **envp, return -1; } -ProcessInfo sys::ExecuteNoWait(StringRef Program, const char **args, - const char **envp, const StringRef **redirects, - unsigned memoryLimit, std::string *ErrMsg, +ProcessInfo sys::ExecuteNoWait(StringRef Program, const char **Args, + const char **Envp, + ArrayRef> Redirects, + unsigned MemoryLimit, std::string *ErrMsg, bool *ExecutionFailed) { + assert(Redirects.empty() || Redirects.size() == 3); ProcessInfo PI; if (ExecutionFailed) *ExecutionFailed = false; - if (!Execute(PI, Program, args, envp, redirects, memoryLimit, ErrMsg)) + if (!Execute(PI, Program, Args, Envp, Redirects, MemoryLimit, ErrMsg)) if (ExecutionFailed) *ExecutionFailed = true; -- cgit v1.2.3