summaryrefslogtreecommitdiffstats
path: root/lldb/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
commit2b7899b730b76a1d6162ef2cfbfe8cac179d08d2 (patch)
tree4dc12e3279993d6a66505a36329f53e23d3e3168 /lldb/source/Initialization/SystemInitializerCommon.cpp
parente19dfa6745f65d018ebdae3175c0fa5b50bbdba6 (diff)
downloadbcm5719-llvm-2b7899b730b76a1d6162ef2cfbfe8cac179d08d2.tar.gz
bcm5719-llvm-2b7899b730b76a1d6162ef2cfbfe8cac179d08d2.zip
[Reproducer] Surface error if setting the cwd fails
Make sure that we surface an error if setting the current working directory fails during replay. llvm-svn: 375146
Diffstat (limited to 'lldb/source/Initialization/SystemInitializerCommon.cpp')
-rw-r--r--lldb/source/Initialization/SystemInitializerCommon.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lldb/source/Initialization/SystemInitializerCommon.cpp b/lldb/source/Initialization/SystemInitializerCommon.cpp
index 5b8bd8926ac..e928bbc1641 100644
--- a/lldb/source/Initialization/SystemInitializerCommon.cpp
+++ b/lldb/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();
}
OpenPOWER on IntegriCloud