mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 06:30:39 +00:00
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
This commit is contained in:
parent
80095e5f8e
commit
6a3c89846f
@ -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 &&
|
||||
|
Loading…
Reference in New Issue
Block a user