For ModuleLoader::makeModuleVisible() also pass the source location where the
module import occurred. llvm-svn: 174191
This commit is contained in:
parent
22c22f5f9a
commit
125df0589b
|
@ -839,7 +839,8 @@ public:
|
|||
}
|
||||
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility) { }
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc) { }
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -662,7 +662,8 @@ public:
|
|||
bool IsInclusionDirective);
|
||||
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility);
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -82,7 +82,8 @@ public:
|
|||
|
||||
/// \brief Make the given module visible.
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility) = 0;
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc) = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1164,7 +1164,8 @@ public:
|
|||
/// \param NameVisibility The level of visibility to give the names in the
|
||||
/// module. Visibility can only be increased over time.
|
||||
void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind NameVisibility);
|
||||
Module::NameVisibilityKind NameVisibility,
|
||||
SourceLocation ImportLoc);
|
||||
|
||||
/// \brief Make the names within this set of hidden names visible.
|
||||
void makeNamesVisible(const HiddenNames &Names);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -60,7 +60,8 @@ class VoidModuleLoader : public ModuleLoader {
|
|||
}
|
||||
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility) { }
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc) { }
|
||||
};
|
||||
|
||||
TEST_F(SourceManagerTest, isBeforeInTranslationUnit) {
|
||||
|
|
|
@ -61,7 +61,8 @@ class VoidModuleLoader : public ModuleLoader {
|
|||
}
|
||||
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility) { }
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc) { }
|
||||
};
|
||||
|
||||
TEST_F(LexerTest, LexAPI) {
|
||||
|
|
|
@ -38,7 +38,8 @@ class VoidModuleLoader : public ModuleLoader {
|
|||
}
|
||||
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility) { }
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc) { }
|
||||
};
|
||||
|
||||
// Stub to collect data from InclusionDirective callbacks.
|
||||
|
|
|
@ -61,7 +61,8 @@ class VoidModuleLoader : public ModuleLoader {
|
|||
}
|
||||
|
||||
virtual void makeModuleVisible(Module *Mod,
|
||||
Module::NameVisibilityKind Visibility) { }
|
||||
Module::NameVisibilityKind Visibility,
|
||||
SourceLocation ImportLoc) { }
|
||||
};
|
||||
|
||||
TEST_F(PPConditionalDirectiveRecordTest, PPRecAPI) {
|
||||
|
|
Loading…
Reference in New Issue