Distinguish the various kinds of AST file loading failures:

file corruption, compiler version mismatch, target/language
configuration mismatch, out-of-date AST file. No functionality change
yet.

llvm-svn: 166446
This commit is contained in:
Douglas Gregor
2012-10-22 22:50:17 +00:00
parent 62183c4e18
commit c9ad5fb604
5 changed files with 130 additions and 121 deletions

View File

@@ -354,7 +354,10 @@ CompilerInstance::createPCHExternalASTSource(StringRef Path,
// Unrecoverable failure: don't even try to process the input file.
break;
case ASTReader::IgnorePCH:
case ASTReader::OutOfDate:
case ASTReader::VersionMismatch:
case ASTReader::ConfigurationMismatch:
case ASTReader::HadErrors:
// No suitable PCH file could be found. Return an error.
break;
}
@@ -966,7 +969,10 @@ Module *CompilerInstance::loadModule(SourceLocation ImportLoc,
case ASTReader::Success:
break;
case ASTReader::IgnorePCH:
case ASTReader::OutOfDate:
case ASTReader::VersionMismatch:
case ASTReader::ConfigurationMismatch:
case ASTReader::HadErrors:
// FIXME: The ASTReader will already have complained, but can we showhorn
// that diagnostic information into a more useful form?
KnownModules[Path[0].first] = 0;