summaryrefslogtreecommitdiff
path: root/source/Initialization/SystemInitializerCommon.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2019-10-17 17:58:44 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2019-10-17 17:58:44 +0000
commitac7e41ed6fef583ad755b9ecfdeb654353259cc3 (patch)
treede0c0f937e55b33ee39c79cc566bc9a576c1259d /source/Initialization/SystemInitializerCommon.cpp
parent7f02ebd920b55b9ac87bc4a30e6658b8ccf24a23 (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.cpp9
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();
}