Never cache the result of a module file lookup.

llvm-svn: 174744
This commit is contained in:
Douglas Gregor
2013-02-08 21:27:45 +00:00
parent dd2721842d
commit dadd85dc0c
3 changed files with 15 additions and 8 deletions

View File

@@ -996,7 +996,8 @@ CompilerInstance::loadModule(SourceLocation ImportLoc,
BuildingModule = true;
compileModule(*this, ModuleNameLoc, Module, ModuleFileName);
ModuleFile = FileMgr->getFile(ModuleFileName);
ModuleFile = FileMgr->getFile(ModuleFileName, /*OpenFile=*/false,
/*CacheFailure=*/false);
if (!ModuleFile && getPreprocessorOpts().FailedModules)
getPreprocessorOpts().FailedModules->addFailed(ModuleName);
@@ -1079,14 +1080,14 @@ CompilerInstance::loadModule(SourceLocation ImportLoc,
<< ModuleName
<< SourceRange(ImportLoc, ModuleNameLoc);
ModuleBuildFailed = true;
return ModuleLoadResult();
}
compileModule(*this, ModuleNameLoc, Module, ModuleFileName);
// Try loading the module again.
ModuleFile = FileMgr->getFile(ModuleFileName);
ModuleFile = FileMgr->getFile(ModuleFileName, /*OpenFile=*/false,
/*CacheFailure=*/false);
if (!ModuleFile ||
ModuleManager->ReadAST(ModuleFileName,
serialization::MK_Module, ImportLoc,