aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Basic')
-rw-r--r--lib/Basic/FileManager.cpp8
-rw-r--r--lib/Basic/SourceManager.cpp18
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