aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-10 17:30:39 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-10 17:30:39 +0000
commit6a3c89846f242b61236155e0e7100850327a222d (patch)
tree45e9ed53bd996b0f89d6c99d734197230b8448e4 /lib
parent80095e5f8e433b7a68fbad4ff460503fd06f84ef (diff)
downloadexternal_llvm-6a3c89846f242b61236155e0e7100850327a222d.zip
external_llvm-6a3c89846f242b61236155e0e7100850327a222d.tar.gz
external_llvm-6a3c89846f242b61236155e0e7100850327a222d.tar.bz2
MemoryBuffer::getFile handles zero sized files, no need to duplicate the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186018 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Support/FileUtilities.cpp23
1 files changed, 2 insertions, 21 deletions
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp
index 6339e00..7f5d540 100644
--- a/lib/Support/FileUtilities.cpp
+++ b/lib/Support/FileUtilities.cpp
@@ -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 &&