[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

Jan Svoboda via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 10 08:47:28 PDT 2025


================
@@ -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


More information about the cfe-commits mailing list