================ @@ -993,6 +1000,28 @@ bool ModuleDepCollector::isPrebuiltModule(const Module *M) { return true; } +void ModuleDepCollector::addVisibleModules() { + llvm::DenseSet<Module *> ImportedModules; + auto InsertVisibleModules = [&](const Module *M) { + if (ImportedModules.contains(M)) + return; + + VisibleModules.insert(M->getTopLevelModuleName()); + SmallVector<Module *> Stack(M->Imports.begin(), M->Imports.end()); + while (!Stack.empty()) { + Module *CurrModule = Stack.pop_back_val(); + if (ImportedModules.contains(CurrModule)) + continue; + ImportedModules.insert(CurrModule); + VisibleModules.insert(CurrModule->getTopLevelModuleName()); ---------------- jansvoboda11 wrote:
I think that only applies to visibility within the module itself, not to visibility for importers of the module: https://github.com/llvm/llvm-project/blob/main/clang/lib/Basic/Module.cpp#L689-L707 https://github.com/llvm/llvm-project/pull/147969 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits