diff options
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/GlobalModuleIndex.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Serialization/ModuleManager.cpp | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/Serialization/GlobalModuleIndex.cpp b/clang/lib/Serialization/GlobalModuleIndex.cpp index a1bec89efb9..98581223250 100644 --- a/clang/lib/Serialization/GlobalModuleIndex.cpp +++ b/clang/lib/Serialization/GlobalModuleIndex.cpp @@ -239,9 +239,11 @@ GlobalModuleIndex::readIndex(StringRef Path) { IndexPath += Path; llvm::sys::path::append(IndexPath, IndexFileName); - std::unique_ptr<llvm::MemoryBuffer> Buffer; - if (llvm::MemoryBuffer::getFile(IndexPath.c_str(), Buffer)) + llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> BufferOrErr = + llvm::MemoryBuffer::getFile(IndexPath.c_str()); + if (!BufferOrErr) return std::make_pair(nullptr, EC_NotFound); + std::unique_ptr<llvm::MemoryBuffer> Buffer = std::move(BufferOrErr.get()); /// \brief The bitstream reader from which we'll read the AST file. llvm::BitstreamReader Reader((const unsigned char *)Buffer->getBufferStart(), diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp index 0a9ea69d695..2c10c119a07 100644 --- a/clang/lib/Serialization/ModuleManager.cpp +++ b/clang/lib/Serialization/ModuleManager.cpp @@ -106,9 +106,13 @@ ModuleManager::addModule(StringRef FileName, ModuleKind Type, // Open the AST file. std::error_code ec; if (FileName == "-") { - ec = llvm::MemoryBuffer::getSTDIN(New->Buffer); + llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> Buf = + llvm::MemoryBuffer::getSTDIN(); + ec = Buf.getError(); if (ec) ErrorStr = ec.message(); + else + New->Buffer = std::move(Buf.get()); } else { // Leave the FileEntry open so if it gets read again by another // ModuleManager it must be the same underlying file. |