summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2016-10-21 23:35:03 +0000
committerManman Ren <manman.ren@gmail.com>2016-10-21 23:35:03 +0000
commitc8c9415644fa2cce5b65d8ea005e62ac59a73708 (patch)
treec3132c408c11cec57d047dc89f86f93baeb4c0cc /clang/lib/Serialization/ASTReader.cpp
parent0db4549a1e2ba13806354cfe489df0e4fc94ced4 (diff)
downloadbcm5719-llvm-c8c9415644fa2cce5b65d8ea005e62ac59a73708.tar.gz
bcm5719-llvm-c8c9415644fa2cce5b65d8ea005e62ac59a73708.zip
Module: correctly set the module file kind when emitting file_modified.
rdar://28503343 Differential Revision: http://reviews.llvm.org/D25806 llvm-svn: 284899
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 8ce118ce710..57de217078f 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -1983,6 +1983,7 @@ ASTReader::readInputFileInfo(ModuleFile &F, unsigned ID) {
return R;
}
+static unsigned moduleKindForDiagnostic(ModuleKind Kind);
InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) {
// If this ID is bogus, just return an empty input file.
if (ID == 0 || ID > F.InputFilesLoaded.size())
@@ -2079,7 +2080,13 @@ InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) {
// The top-level PCH is stale.
StringRef TopLevelPCHName(ImportStack.back()->FileName);
- Error(diag::err_fe_pch_file_modified, Filename, TopLevelPCHName);
+ unsigned DiagnosticKind = moduleKindForDiagnostic(ImportStack.back()->Kind);
+ if (DiagnosticKind == 0)
+ Error(diag::err_fe_pch_file_modified, Filename, TopLevelPCHName);
+ else if (DiagnosticKind == 1)
+ Error(diag::err_fe_module_file_modified, Filename, TopLevelPCHName);
+ else
+ Error(diag::err_fe_ast_file_modified, Filename, TopLevelPCHName);
// Print the import stack.
if (ImportStack.size() > 1 && !Diags.isDiagnosticInFlight()) {
OpenPOWER on IntegriCloud