diff options
Diffstat (limited to 'llvm/lib/Support/Program.cpp')
-rw-r--r-- | llvm/lib/Support/Program.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/Support/Program.cpp b/llvm/lib/Support/Program.cpp index f9f64cca7c9..4212323bc0e 100644 --- a/llvm/lib/Support/Program.cpp +++ b/llvm/lib/Support/Program.cpp @@ -24,13 +24,14 @@ using namespace sys; //===----------------------------------------------------------------------===// static bool Execute(ProcessInfo &PI, StringRef Program, const char **Args, - const char **Env, const StringRef **Redirects, + const char **Env, ArrayRef<Optional<StringRef>> 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) { + ArrayRef<Optional<StringRef>> 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 (ExecutionFailed) @@ -47,9 +48,11 @@ int sys::ExecuteAndWait(StringRef Program, const char **Args, const char **Envp, } ProcessInfo sys::ExecuteNoWait(StringRef Program, const char **Args, - const char **Envp, const StringRef **Redirects, + const char **Envp, + ArrayRef<Optional<StringRef>> Redirects, unsigned MemoryLimit, std::string *ErrMsg, bool *ExecutionFailed) { + assert(Redirects.empty() || Redirects.size() == 3); ProcessInfo PI; if (ExecutionFailed) *ExecutionFailed = false; |