summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/FileUtilities.cpp
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
commitfc3876118d870f6894bc512215b35b42a2c1e644 (patch)
tree1b2d0940a7bd97e2440f8f8e2433a40cc5fb6b55 /llvm/lib/Support/FileUtilities.cpp
parentf04bbd8b7fad6d4dcfc576b976ff52bbda609df5 (diff)
downloadbcm5719-llvm-fc3876118d870f6894bc512215b35b42a2c1e644.tar.gz
bcm5719-llvm-fc3876118d870f6894bc512215b35b42a2c1e644.zip
MemoryBuffer::getFile handles zero sized files, no need to duplicate the test.
llvm-svn: 186018
Diffstat (limited to 'llvm/lib/Support/FileUtilities.cpp')
-rw-r--r--llvm/lib/Support/FileUtilities.cpp23
1 files changed, 2 insertions, 21 deletions
diff --git a/llvm/lib/Support/FileUtilities.cpp b/llvm/lib/Support/FileUtilities.cpp
index 6339e005461..7f5d5404877 100644
--- a/llvm/lib/Support/FileUtilities.cpp
+++ b/llvm/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 &&
OpenPOWER on IntegriCloud