diff options
Diffstat (limited to 'lib/Basic')
-rw-r--r-- | lib/Basic/FileManager.cpp | 8 | ||||
-rw-r--r-- | lib/Basic/SourceManager.cpp | 18 |
2 files changed, 7 insertions, 19 deletions
diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp index e5ec545f16..c8515a356b 100644 --- a/lib/Basic/FileManager.cpp +++ b/lib/Basic/FileManager.cpp @@ -399,15 +399,13 @@ void FileManager::FixupRelativePath(llvm::sys::Path &path, llvm::MemoryBuffer *FileManager:: getBufferForFile(llvm::StringRef Filename, const FileSystemOptions &FileSystemOpts, - std::string *ErrorStr, int64_t FileSize, - struct stat *FileInfo) { + std::string *ErrorStr, int64_t FileSize) { if (FileSystemOpts.WorkingDir.empty()) - return llvm::MemoryBuffer::getFile(Filename, ErrorStr, FileSize, FileInfo); + return llvm::MemoryBuffer::getFile(Filename, ErrorStr, FileSize); llvm::sys::Path FilePath(Filename); FixupRelativePath(FilePath, FileSystemOpts); - return llvm::MemoryBuffer::getFile(FilePath.c_str(), ErrorStr, - FileSize, FileInfo); + return llvm::MemoryBuffer::getFile(FilePath.c_str(), ErrorStr, FileSize); } int FileManager::stat_cached(const char *path, struct stat *buf, diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 4fa7d1d879..2e47cdc275 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -73,10 +73,9 @@ const llvm::MemoryBuffer *ContentCache::getBuffer(Diagnostic &Diag, // Lazily create the Buffer for ContentCaches that wrap files. if (!Buffer.getPointer() && Entry) { std::string ErrorStr; - struct stat FileInfo; Buffer.setPointer(SM.getFileManager().getBufferForFile(Entry, SM.getFileSystemOpts(), - &ErrorStr, &FileInfo)); + &ErrorStr)); // If we were unable to open the file, then we are in an inconsistent // situation where the content cache referenced a file which no longer @@ -105,17 +104,9 @@ const llvm::MemoryBuffer *ContentCache::getBuffer(Diagnostic &Diag, Buffer.setInt(Buffer.getInt() | InvalidFlag); - // FIXME: This conditionalization is horrible, but we see spurious failures - // in the test suite due to this warning and no one has had time to hunt it - // down. So for now, we just don't emit this diagnostic on Win32, and hope - // nothing bad happens. - // - // PR6812. -#if !defined(LLVM_ON_WIN32) - } else if (FileInfo.st_size != Entry->getSize() || - FileInfo.st_mtime != Entry->getModificationTime()) { - // Check that the file's size and modification time are the same - // as in the file entry (which may have come from a stat cache). + } else if (getRawBuffer()->getBufferSize() != (size_t)Entry->getSize()) { + // Check that the file's size is the same as in the file entry (which may + // have come from a stat cache). if (Diag.isDiagnosticInFlight()) Diag.SetDelayedDiagnostic(diag::err_file_modified, Entry->getName()); @@ -124,7 +115,6 @@ const llvm::MemoryBuffer *ContentCache::getBuffer(Diagnostic &Diag, << Entry->getName(); Buffer.setInt(Buffer.getInt() | InvalidFlag); -#endif } // If the buffer is valid, check to see if it has a UTF Byte Order Mark |