summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/REPL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Expression/REPL.cpp')
-rw-r--r--lldb/source/Expression/REPL.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/lldb/source/Expression/REPL.cpp b/lldb/source/Expression/REPL.cpp
index f7bd86391f5..cfa520981be 100644
--- a/lldb/source/Expression/REPL.cpp
+++ b/lldb/source/Expression/REPL.cpp
@@ -398,17 +398,22 @@ void REPL::IOHandlerInputComplete(IOHandler &io_handler, std::string &code) {
// Update our code on disk
if (!m_repl_source_path.empty()) {
- lldb_private::File file;
- FileSystem::Instance().Open(file, FileSpec(m_repl_source_path),
+ auto file = FileSystem::Instance().Open(FileSpec(m_repl_source_path),
File::eOpenOptionWrite |
File::eOpenOptionTruncate |
File::eOpenOptionCanCreate,
lldb::eFilePermissionsFileDefault);
- std::string code(m_code.CopyList());
- code.append(1, '\n');
- size_t bytes_written = code.size();
- file.Write(code.c_str(), bytes_written);
- file.Close();
+ if (file) {
+ std::string code(m_code.CopyList());
+ code.append(1, '\n');
+ size_t bytes_written = code.size();
+ file.get()->Write(code.c_str(), bytes_written);
+ file.get()->Close();
+ } else {
+ std::string message = llvm::toString(file.takeError());
+ error_sp->Printf("error: couldn't open %s: %s\n",
+ m_repl_source_path.c_str(), message.c_str());
+ }
// Now set the default file and line to the REPL source file
m_target.GetSourceManager().SetDefaultFileAndLine(
OpenPOWER on IntegriCloud