diff --git a/lib/ClangImporter/ClangModuleDependencyScanner.cpp b/lib/ClangImporter/ClangModuleDependencyScanner.cpp index 650473f7e5299..de0e97f3ae310 100644 --- a/lib/ClangImporter/ClangModuleDependencyScanner.cpp +++ b/lib/ClangImporter/ClangModuleDependencyScanner.cpp @@ -296,13 +296,11 @@ ModuleDependencyVector ClangImporter::bridgeClangModuleDependencies( clangModuleDep.IsSystem); std::vector directDependencyIDs; - for (const auto &moduleName : clangModuleDep.ClangModuleDeps) { - // FIXME: This assumes, conservatively, that all Clang module imports - // are exported. We need to fix this once the clang scanner gains the appropriate - // API to query this. - dependencies.addModuleImport(moduleName.ModuleName, /* isExported */ true, &alreadyAddedModules); + for (const auto &DepInfo : clangModuleDep.ClangModuleDeps) { + auto moduleName = DepInfo.ID.ModuleName; + dependencies.addModuleImport(moduleName, DepInfo.Exported, &alreadyAddedModules); // It is safe to assume that all dependencies of a Clang module are Clang modules. - directDependencyIDs.push_back({moduleName.ModuleName, ModuleDependencyKind::Clang}); + directDependencyIDs.push_back({moduleName, ModuleDependencyKind::Clang}); } dependencies.setImportedClangDependencies(directDependencyIDs); result.push_back(std::make_pair(ModuleDependencyID{clangModuleDep.ID.ModuleName,