OSDN Git Service

LTO: Improve error reporting when adding a cache entry.
authorPeter Collingbourne <peter@pcc.me.uk>
Tue, 3 Oct 2017 00:44:21 +0000 (00:44 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Tue, 3 Oct 2017 00:44:21 +0000 (00:44 +0000)
Move error handling code next to the code that returns the error,
and change the error message in order to distinguish it from a similar
error message elsewhere in this file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314745 91177308-0d34-0410-b5e6-96231b3b80d8

lib/LTO/Caching.cpp

index 98360f7..1708ab4 100644 (file)
@@ -66,15 +66,17 @@ Expected<NativeObjectCache> lto::localCache(StringRef CacheDirectoryPath,
         // Open the file first to avoid racing with a cache pruner.
         ErrorOr<std::unique_ptr<MemoryBuffer>> MBOrErr =
             MemoryBuffer::getFile(TempFilename);
+        if (!MBOrErr)
+          report_fatal_error(Twine("Failed to open new cache file ") +
+                             TempFilename + ": " +
+                             MBOrErr.getError().message() + "\n");
 
         // This is atomic on POSIX systems.
         if (auto EC = sys::fs::rename(TempFilename, EntryPath))
           report_fatal_error(Twine("Failed to rename temporary file ") +
-                             TempFilename + ": " + EC.message() + "\n");
+                             TempFilename + " to " + EntryPath + ": " +
+                             EC.message() + "\n");
 
-        if (!MBOrErr)
-          report_fatal_error(Twine("Failed to open cache file ") + EntryPath +
-                             ": " + MBOrErr.getError().message() + "\n");
         AddBuffer(Task, std::move(*MBOrErr), EntryPath);
       }
     };