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 | 2b7899b730b76a1d6162ef2cfbfe8cac179d08d2 (patch) | |
tree | 4dc12e3279993d6a66505a36329f53e23d3e3168 /lldb/source/Initialization/SystemInitializerCommon.cpp | |
parent | e19dfa6745f65d018ebdae3175c0fa5b50bbdba6 (diff) | |
download | bcm5719-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.cpp | 9 |
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(); } |