diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-02-01 16:36:12 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-02-01 16:36:12 +0000 |
commit | 5ebcb20b0331a6e64c213f0bb5f4bed9a9e8eb34 (patch) | |
tree | 45de9a64b0c676dcf9553b9880f7868e98a70c7a /lib | |
parent | 95d912c994832333a998bc7d4ae0e8e830a2d38b (diff) |
For ModuleLoader::makeModuleVisible() also pass the source location where the
module import occurred.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174191 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Frontend/CompilerInstance.cpp | 10 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 2 | ||||
-rw-r--r-- | lib/Serialization/ASTReader.cpp | 6 |
3 files changed, 11 insertions, 7 deletions
diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index 27f96b0974..d4a351394a 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -890,7 +890,8 @@ CompilerInstance::loadModule(SourceLocation ImportLoc, if (!ImportLoc.isInvalid() && LastModuleImportLoc == ImportLoc) { // Make the named module visible. if (LastModuleImportResult) - ModuleManager->makeModuleVisible(LastModuleImportResult, Visibility); + ModuleManager->makeModuleVisible(LastModuleImportResult, Visibility, + ImportLoc); return LastModuleImportResult; } @@ -1178,7 +1179,7 @@ CompilerInstance::loadModule(SourceLocation ImportLoc, return ModuleLoadResult(); } - ModuleManager->makeModuleVisible(Module, Visibility); + ModuleManager->makeModuleVisible(Module, Visibility, ImportLoc); } // If this module import was due to an inclusion directive, create an @@ -1199,7 +1200,8 @@ CompilerInstance::loadModule(SourceLocation ImportLoc, } void CompilerInstance::makeModuleVisible(Module *Mod, - Module::NameVisibilityKind Visibility){ - ModuleManager->makeModuleVisible(Mod, Visibility); + Module::NameVisibilityKind Visibility, + SourceLocation ImportLoc){ + ModuleManager->makeModuleVisible(Mod, Visibility, ImportLoc); } diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 0d549fcc18..45f7cae960 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -11514,7 +11514,7 @@ void Sema::createImplicitModuleImport(SourceLocation Loc, Module *Mod) { Consumer.HandleImplicitImportDecl(ImportD); // Make the module visible. - PP.getModuleLoader().makeModuleVisible(Mod, Module::AllVisible); + PP.getModuleLoader().makeModuleVisible(Mod, Module::AllVisible, Loc); } void Sema::ActOnPragmaRedefineExtname(IdentifierInfo* Name, diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 1524da9bd6..37db83e594 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -2591,7 +2591,8 @@ void ASTReader::makeNamesVisible(const HiddenNames &Names) { } void ASTReader::makeModuleVisible(Module *Mod, - Module::NameVisibilityKind NameVisibility) { + Module::NameVisibilityKind NameVisibility, + SourceLocation ImportLoc) { llvm::SmallPtrSet<Module *, 4> Visited; SmallVector<Module *, 4> Stack; Stack.push_back(Mod); @@ -3082,7 +3083,8 @@ void ASTReader::InitializeContext() { // Re-export any modules that were imported by a non-module AST file. for (unsigned I = 0, N = ImportedModules.size(); I != N; ++I) { if (Module *Imported = getSubmodule(ImportedModules[I])) - makeModuleVisible(Imported, Module::AllVisible); + makeModuleVisible(Imported, Module::AllVisible, + /*ImportLoc=*/SourceLocation()); } ImportedModules.clear(); } |