diff options
Diffstat (limited to 'clang/lib/Basic/FileSystemStatCache.cpp')
-rw-r--r-- | clang/lib/Basic/FileSystemStatCache.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/clang/lib/Basic/FileSystemStatCache.cpp b/clang/lib/Basic/FileSystemStatCache.cpp index 38c46299018..b71259e0d5c 100644 --- a/clang/lib/Basic/FileSystemStatCache.cpp +++ b/clang/lib/Basic/FileSystemStatCache.cpp @@ -12,8 +12,8 @@ //===----------------------------------------------------------------------===// #include "clang/Basic/FileSystemStatCache.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" -#include <fcntl.h> // FIXME: This is terrible, we need this for ::close. #if !defined(_MSC_VER) && !defined(__MINGW32__) @@ -60,13 +60,9 @@ bool FileSystemStatCache::get(const char *Path, struct stat &StatBuf, // // Because of this, check to see if the file exists with 'open'. If the // open succeeds, use fstat to get the stat info. - int OpenFlags = O_RDONLY; -#ifdef O_BINARY - OpenFlags |= O_BINARY; // Open input file in binary mode on win32. -#endif - *FileDescriptor = ::open(Path, OpenFlags); - - if (*FileDescriptor == -1) { + llvm::error_code EC = llvm::sys::fs::openFileForRead(Path, *FileDescriptor); + + if (EC) { // If the open fails, our "stat" fails. R = CacheMissing; } else { |