summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Support/FileUtilities.cpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp
index f13c04b961..6339e00546 100644
--- a/lib/Support/FileUtilities.cpp
+++ b/lib/Support/FileUtilities.cpp
@@ -17,7 +17,6 @@
#include "llvm/ADT/SmallString.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
-#include "llvm/Support/PathV1.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/system_error.h"
#include <cctype>
@@ -176,20 +175,15 @@ int llvm::DiffFilesWithTolerance(StringRef NameA,
StringRef NameB,
double AbsTol, double RelTol,
std::string *Error) {
- sys::PathWithStatus FileA(NameA);
- sys::PathWithStatus FileB(NameB);
-
- const sys::FileStatus *FileAStat = FileA.getFileStatus(false, Error);
- if (!FileAStat)
- return 2;
- const sys::FileStatus *FileBStat = FileB.getFileStatus(false, Error);
- if (!FileBStat)
- return 2;
-
// Check for zero length files because some systems croak when you try to
// mmap an empty file.
- size_t A_size = FileAStat->getSize();
- size_t B_size = FileBStat->getSize();
+ 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)
@@ -205,13 +199,13 @@ int llvm::DiffFilesWithTolerance(StringRef NameA,
// Now its safe to mmap the files into memory because both files
// have a non-zero size.
OwningPtr<MemoryBuffer> F1;
- if (error_code ec = MemoryBuffer::getFile(FileA.c_str(), F1)) {
+ if (error_code ec = MemoryBuffer::getFile(NameA, F1)) {
if (Error)
*Error = ec.message();
return 2;
}
OwningPtr<MemoryBuffer> F2;
- if (error_code ec = MemoryBuffer::getFile(FileB.c_str(), F2)) {
+ if (error_code ec = MemoryBuffer::getFile(NameB, F2)) {
if (Error)
*Error = ec.message();
return 2;