diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2019-10-17 17:58:44 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2019-10-17 17:58:44 +0000 |
commit | ac7e41ed6fef583ad755b9ecfdeb654353259cc3 (patch) | |
tree | de0c0f937e55b33ee39c79cc566bc9a576c1259d /source/Initialization/SystemInitializerCommon.cpp | |
parent | 7f02ebd920b55b9ac87bc4a30e6658b8ccf24a23 (diff) |
[Reproducer] Surface error if setting the cwd fails
Make sure that we surface an error if setting the current working
directory fails during replay.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@375146 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'source/Initialization/SystemInitializerCommon.cpp')
-rw-r--r-- | source/Initialization/SystemInitializerCommon.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/Initialization/SystemInitializerCommon.cpp b/source/Initialization/SystemInitializerCommon.cpp index 5b8bd8926..e928bbc16 100644 --- a/source/Initialization/SystemInitializerCommon.cpp +++ b/source/Initialization/SystemInitializerCommon.cpp @@ -80,8 +80,13 @@ llvm::Error SystemInitializerCommon::Initialize() { } if (llvm::Expected<std::string> cwd = loader->LoadBuffer<WorkingDirectoryProvider>()) { - FileSystem::Instance().GetVirtualFileSystem()->setCurrentWorkingDirectory( - *cwd); + cwd->erase(std::remove_if(cwd->begin(), cwd->end(), std::iscntrl), + cwd->end()); + if (std::error_code ec = FileSystem::Instance() + .GetVirtualFileSystem() + ->setCurrentWorkingDirectory(*cwd)) { + return llvm::errorCodeToError(ec); + } } else { return cwd.takeError(); } |