aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-03-17 15:30:15 +0000
committerDouglas Gregor <dgregor@apple.com>2010-03-17 15:30:15 +0000
commite39b600582f9183e3301c3e6cb48b76ac5087119 (patch)
treed54416dc55d18283366cfd3b68340a1938760819
parent69247139f5ce3edf46c48344129792b3a05d090a (diff)
Use a simple diagnostic (file modified) when we detect that a file has
changed, rather than trying to point out how it changed. The "why" doesn't matter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98725 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/DiagnosticCommonKinds.td3
-rw-r--r--lib/Basic/SourceManager.cpp14
-rw-r--r--test/PCH/changed-files.c6
3 files changed, 7 insertions, 16 deletions
diff --git a/include/clang/Basic/DiagnosticCommonKinds.td b/include/clang/Basic/DiagnosticCommonKinds.td
index 849e6437fb..8e791c3422 100644
--- a/include/clang/Basic/DiagnosticCommonKinds.td
+++ b/include/clang/Basic/DiagnosticCommonKinds.td
@@ -65,9 +65,6 @@ def err_target_invalid_feature : Error<"invalid target feature '%0'">;
// Source manager
def err_cannot_open_file : Error<"cannot open file '%0': %1">, DefaultFatal;
-def err_file_size_changed : Error<
- "size of file '%0' changed since it was first processed (from %1 to %2)">,
- DefaultFatal;
def err_file_modified : Error<
"file '%0' modified since it was first processed">, DefaultFatal;
diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp
index be7c256b5b..440e688cd7 100644
--- a/lib/Basic/SourceManager.cpp
+++ b/lib/Basic/SourceManager.cpp
@@ -92,18 +92,12 @@ const llvm::MemoryBuffer *ContentCache::getBuffer(Diagnostic &Diag,
Diag.Report(diag::err_cannot_open_file)
<< Entry->getName() << ErrorStr;
Buffer.setInt(true);
- } else {
+ } else if (FileInfo.st_size != Entry->getSize() ||
+ FileInfo.st_mtime != Entry->getModificationTime()) {
// Check that the file's size and modification time is the same as
// in the file entry (which may have come from a stat cache).
- if (FileInfo.st_size != Entry->getSize()) {
- Diag.Report(diag::err_file_size_changed)
- << Entry->getName() << (unsigned)Entry->getSize()
- << (unsigned)FileInfo.st_size;
- Buffer.setInt(true);
- } else if (FileInfo.st_mtime != Entry->getModificationTime()) {
- Diag.Report(diag::err_file_modified) << Entry->getName();
- Buffer.setInt(true);
- }
+ Diag.Report(diag::err_file_modified) << Entry->getName();
+ Buffer.setInt(true);
}
}
diff --git a/test/PCH/changed-files.c b/test/PCH/changed-files.c
index ec4f5b4b1d..5bcb977d12 100644
--- a/test/PCH/changed-files.c
+++ b/test/PCH/changed-files.c
@@ -6,17 +6,17 @@ const char *s2 = m0;
// RUN: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUN: echo '' > %t.h
// RUN: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
-// RUN: grep "size of file" %t.stderr
+// RUN: grep "modified" %t.stderr
// RUN: echo '#define m0 000' > %t.h
// RUN: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUN: echo '' > %t.h
// RUN: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
-// RUN: grep "size of file" %t.stderr
+// RUN: grep "modified" %t.stderr
// RUN: echo '#define m0 000' > %t.h
// RUN: echo "#define m1 'abcd'" >> %t.h
// RUN: %clang_cc1 -emit-pch -o %t.h.pch %t.h
// RUN: echo '' > %t.h
// RUN: not %clang_cc1 -include-pch %t.h.pch %s 2> %t.stderr
-// RUN: grep "size of file" %t.stderr
+// RUN: grep "modified" %t.stderr