Update the MemoryBuffer API to use ErrorOr.
[oota-llvm.git] / lib / IR / GCOV.cpp
index c8dc951a9bf7e7f63abdf4f786bd14ea973dd24b..1667401f88d0c1bed672d21e530a65d5541ad83b 100644 (file)
@@ -22,7 +22,6 @@
 #include <algorithm>
 #include <system_error>
 using namespace llvm;
-using std::error_code;
 
 //===----------------------------------------------------------------------===//
 // GCOVFile implementation.
@@ -439,11 +438,15 @@ class LineConsumer {
   StringRef Remaining;
 public:
   LineConsumer(StringRef Filename) {
-    if (error_code EC = MemoryBuffer::getFileOrSTDIN(Filename, Buffer)) {
+    ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
+        MemoryBuffer::getFileOrSTDIN(Filename);
+    if (std::error_code EC = BufferOrErr.getError()) {
       errs() << Filename << ": " << EC.message() << "\n";
       Remaining = "";
-    } else
+    } else {
+      Buffer = std::move(BufferOrErr.get());
       Remaining = Buffer->getBuffer();
+    }
   }
   bool empty() { return Remaining.empty(); }
   void printNext(raw_ostream &OS, uint32_t LineNum) {