diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-10 17:30:39 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-10 17:30:39 +0000 |
commit | 6a3c89846f242b61236155e0e7100850327a222d (patch) | |
tree | 45e9ed53bd996b0f89d6c99d734197230b8448e4 /lib | |
parent | 80095e5f8e433b7a68fbad4ff460503fd06f84ef (diff) | |
download | external_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.cpp | 23 |
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 && |