aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2013-02-01 16:36:12 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2013-02-01 16:36:12 +0000
commit5ebcb20b0331a6e64c213f0bb5f4bed9a9e8eb34 (patch)
tree45de9a64b0c676dcf9553b9880f7868e98a70c7a /lib
parent95d912c994832333a998bc7d4ae0e8e830a2d38b (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.cpp10
-rw-r--r--lib/Sema/SemaDecl.cpp2
-rw-r--r--lib/Serialization/ASTReader.cpp6
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();
}