[modules] Remove dead code from Module for tracking macro import locations.
llvm-svn: 236376
This commit is contained in:
parent
32dbd69ce2
commit
10434f307c
|
@ -186,10 +186,7 @@ public:
|
|||
/// particular module.
|
||||
enum NameVisibilityKind {
|
||||
/// \brief All of the names in this module are hidden.
|
||||
///
|
||||
Hidden,
|
||||
/// \brief Only the macro names in this module are visible.
|
||||
MacrosVisible,
|
||||
/// \brief All of the names in this module are visible.
|
||||
AllVisible
|
||||
};
|
||||
|
@ -197,9 +194,6 @@ public:
|
|||
/// \brief The visibility of names within this particular module.
|
||||
NameVisibilityKind NameVisibility;
|
||||
|
||||
/// \brief The location at which macros within this module became visible.
|
||||
SourceLocation MacroVisibilityLoc;
|
||||
|
||||
/// \brief The location of the inferred submodule.
|
||||
SourceLocation InferredSubmoduleLoc;
|
||||
|
||||
|
|
|
@ -1063,6 +1063,10 @@ public:
|
|||
|
||||
void makeModuleVisible(Module *M, SourceLocation Loc);
|
||||
|
||||
SourceLocation getModuleImportLoc(Module *M) const {
|
||||
return VisibleModules.getImportLoc(M);
|
||||
}
|
||||
|
||||
/// \brief Lex a string literal, which may be the concatenation of multiple
|
||||
/// string literals and may even come from macro expansion.
|
||||
/// \returns true on success, false if a error diagnostic has been generated.
|
||||
|
|
|
@ -1680,12 +1680,11 @@ void Preprocessor::HandleIncludeDirective(SourceLocation HashLoc,
|
|||
ReplaceRange, ("@import " + PathString + ";").str());
|
||||
}
|
||||
|
||||
// Load the module. Only make macros visible. We'll make the declarations
|
||||
// Load the module to import its macros. We'll make the declarations
|
||||
// visible when the parser gets here.
|
||||
Module::NameVisibilityKind Visibility = Module::MacrosVisible;
|
||||
ModuleLoadResult Imported
|
||||
= TheModuleLoader.loadModule(IncludeTok.getLocation(), Path, Visibility,
|
||||
/*IsIncludeDirective=*/true);
|
||||
ModuleLoadResult Imported = TheModuleLoader.loadModule(
|
||||
IncludeTok.getLocation(), Path, Module::Hidden,
|
||||
/*IsIncludeDirective=*/true);
|
||||
if (Imported)
|
||||
makeModuleVisible(Imported, IncludeTok.getLocation());
|
||||
assert((Imported == nullptr || Imported == SuggestedModule.getModule()) &&
|
||||
|
|
|
@ -752,7 +752,7 @@ void Preprocessor::LexAfterModuleImport(Token &Result) {
|
|||
if (getLangOpts().Modules) {
|
||||
Imported = TheModuleLoader.loadModule(ModuleImportLoc,
|
||||
ModuleImportPath,
|
||||
Module::MacrosVisible,
|
||||
Module::Hidden,
|
||||
/*IsIncludeDirective=*/false);
|
||||
if (Imported)
|
||||
makeModuleVisible(Imported, ModuleImportLoc);
|
||||
|
|
|
@ -3222,10 +3222,7 @@ static void moveMethodToBackOfGlobalList(Sema &S, ObjCMethodDecl *Method) {
|
|||
}
|
||||
|
||||
void ASTReader::makeNamesVisible(const HiddenNames &Names, Module *Owner) {
|
||||
assert(Owner->NameVisibility >= Module::MacrosVisible &&
|
||||
"nothing to make visible?");
|
||||
|
||||
// FIXME: Only do this if Owner->NameVisibility == AllVisible.
|
||||
assert(Owner->NameVisibility != Module::Hidden && "nothing to make visible?");
|
||||
for (Decl *D : Names) {
|
||||
bool wasHidden = D->Hidden;
|
||||
D->Hidden = false;
|
||||
|
@ -3259,9 +3256,6 @@ void ASTReader::makeModuleVisible(Module *Mod,
|
|||
}
|
||||
|
||||
// Update the module's name visibility.
|
||||
if (NameVisibility >= Module::MacrosVisible &&
|
||||
Mod->NameVisibility < Module::MacrosVisible)
|
||||
Mod->MacroVisibilityLoc = ImportLoc;
|
||||
Mod->NameVisibility = NameVisibility;
|
||||
|
||||
// If we've already deserialized any names from this module,
|
||||
|
|
|
@ -4458,7 +4458,7 @@ void ASTWriter::WriteASTCore(Sema &SemaRef,
|
|||
// FIXME: If the module has macros imported then later has declarations
|
||||
// imported, this location won't be the right one as a location for the
|
||||
// declaration imports.
|
||||
AddSourceLocation(Import.M->MacroVisibilityLoc, ImportedModules);
|
||||
AddSourceLocation(PP.getModuleImportLoc(Import.M), ImportedModules);
|
||||
}
|
||||
|
||||
Stream.EmitRecord(IMPORTED_MODULES, ImportedModules);
|
||||
|
|
Loading…
Reference in New Issue