[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)
Cyndy Ishida via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 10 08:52:47 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());
----------------
cyndyishida wrote:
Ok, thanks for the correction. I suspect this explains why my test case also fails to see `visible_t` too.
https://github.com/llvm/llvm-project/pull/147969
More information about the cfe-commits
mailing list