MemoryBuffer::getFile handles zero sized files, no need to duplicate the test.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 10 Jul 2013 17:30:39 +0000 (17:30 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 10 Jul 2013 17:30:39 +0000 (17:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186018 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/FileUtilities.cpp

index 6339e005461efad949ba2f4626a2a6eec399da7f..7f5d540487756bf1edd08b9c75f1fa34575c554f 100644 (file)
@@ -175,27 +175,6 @@ int llvm::DiffFilesWithTolerance(StringRef NameA,
                                  StringRef NameB,
                                  double AbsTol, double RelTol,
                                  std::string *Error) {
-  // Check for zero length files because some systems croak when you try to
-  // mmap an empty file.
-  uint64_t A_size;
-  if (sys::fs::file_size(NameA, A_size))
-    return false;
-
-  uint64_t B_size;
-  if (sys::fs::file_size(NameB, B_size))
-    return false;
-
-  // If they are both zero sized then they're the same
-  if (A_size == 0 && B_size == 0)
-    return 0;
-
-  // If only one of them is zero sized then they can't be the same
-  if ((A_size == 0 || B_size == 0)) {
-    if (Error)
-      *Error = "Files differ: one is zero-sized, the other isn't";
-    return 1;
-  }
-
   // Now its safe to mmap the files into memory because both files
   // have a non-zero size.
   OwningPtr<MemoryBuffer> F1;
@@ -218,6 +197,8 @@ int llvm::DiffFilesWithTolerance(StringRef NameA,
   const char *File2End = F2->getBufferEnd();
   const char *F1P = File1Start;
   const char *F2P = File2Start;
+  uint64_t A_size = F1->getBufferSize();
+  uint64_t B_size = F2->getBufferSize();
 
   // Are the buffers identical?  Common case: Handle this efficiently.
   if (A_size == B_size &&