aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Module.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
-rw-r--r--clang/lib/Basic/Module.cpp17
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) {