From a885796d5fd85e4c7c71407feb48553ef7d4e258 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sun, 26 Oct 2014 22:44:13 +0000 Subject: Make VFS and FileManager match the current MemoryBuffer API. This eliminates converting back and forth between the 3 formats and gives us a more homogeneous interface. llvm-svn: 220657 --- clang/lib/Serialization/ModuleManager.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'clang/lib/Serialization/ModuleManager.cpp') diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp index c76a318805e..3baaa0a4b28 100644 --- a/clang/lib/Serialization/ModuleManager.cpp +++ b/clang/lib/Serialization/ModuleManager.cpp @@ -107,27 +107,26 @@ ModuleManager::addModule(StringRef FileName, ModuleKind Type, New->Buffer = std::move(Buffer); } else { // Open the AST file. - std::error_code ec; + llvm::ErrorOr> Buf( + (std::error_code())); if (FileName == "-") { - llvm::ErrorOr> Buf = - llvm::MemoryBuffer::getSTDIN(); - ec = Buf.getError(); - if (ec) - ErrorStr = ec.message(); - else - New->Buffer = std::move(Buf.get()); + Buf = llvm::MemoryBuffer::getSTDIN(); } else { // Leave the FileEntry open so if it gets read again by another // ModuleManager it must be the same underlying file. // FIXME: Because FileManager::getFile() doesn't guarantee that it will // give us an open file, this may not be 100% reliable. - New->Buffer = FileMgr.getBufferForFile(New->File, &ErrorStr, - /*IsVolatile*/ false, - /*ShouldClose*/ false); + Buf = FileMgr.getBufferForFile(New->File, + /*IsVolatile=*/false, + /*ShouldClose=*/false); } - - if (!New->Buffer) + + if (!Buf) { + ErrorStr = Buf.getError().message(); return Missing; + } + + New->Buffer = std::move(*Buf); } // Initialize the stream -- cgit v1.2.3