diff options
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
-rw-r--r-- | clang/lib/Basic/Module.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/clang/lib/Basic/Module.cpp b/clang/lib/Basic/Module.cpp index 330108d..bb85a40 100644 --- a/clang/lib/Basic/Module.cpp +++ b/clang/lib/Basic/Module.cpp @@ -662,7 +662,8 @@ LLVM_DUMP_METHOD void Module::dump() const { } void VisibleModuleSet::setVisible(Module *M, SourceLocation Loc, - VisibleCallback Vis, ConflictCallback Cb) { + bool IncludeExports, VisibleCallback Vis, + ConflictCallback Cb) { // We can't import a global module fragment so the location can be invalid. assert((M->isGlobalModule() || Loc.isValid()) && "setVisible expects a valid import location"); @@ -688,12 +689,14 @@ void VisibleModuleSet::setVisible(Module *M, SourceLocation Loc, Vis(V.M); // Make any exported modules visible. - SmallVector<Module *, 16> Exports; - V.M->getExportedModules(Exports); - for (Module *E : Exports) { - // Don't import non-importable modules. - if (!E->isUnimportable()) - VisitModule({E, &V}); + if (IncludeExports) { + SmallVector<Module *, 16> Exports; + V.M->getExportedModules(Exports); + for (Module *E : Exports) { + // Don't import non-importable modules. + if (!E->isUnimportable()) + VisitModule({E, &V}); + } } for (auto &C : V.M->Conflicts) { |