llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Volodymyr Sapsai (vsapsai) <details> <summary>Changes</summary> When we add the module map describing the compiled module to the command line, add it to the file dependencies as well. Discovered while working on reproducers where a command line input was missing in the captured files as it wasn't considered a dependency. --- Full diff: https://github.com/llvm/llvm-project/pull/160226.diff 5 Files Affected: - (modified) clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (+3-1) - (modified) clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m (+2-1) - (modified) clang/test/ClangScanDeps/modules-header-sharing.m (+2-1) - (modified) clang/test/ClangScanDeps/modules-implementation-module-map.c (+2-1) - (modified) clang/test/ClangScanDeps/modules-implementation-private.m (+2-1) ``````````diff diff --git a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp index d67178c153e88..9109ce789ee4c 100644 --- a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp +++ b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp @@ -444,9 +444,11 @@ void ModuleDepCollector::applyDiscoveredDependencies(CompilerInvocation &CI) { if (OptionalFileEntryRef CurrentModuleMap = PP.getHeaderSearchInfo() .getModuleMap() - .getModuleMapFileForUniquing(CurrentModule)) + .getModuleMapFileForUniquing(CurrentModule)) { CI.getFrontendOpts().ModuleMapFiles.emplace_back( CurrentModuleMap->getNameAsRequested()); + Consumer.handleFileDependency(CurrentModuleMap->getNameAsRequested()); + } SmallVector<ModuleID> DirectDeps; for (const auto &KV : ModularDeps) diff --git a/clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m b/clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m index cfe29c2bf7cdb..1fdcbc51c8e1f 100644 --- a/clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m +++ b/clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m @@ -46,7 +46,8 @@ // CHECK: "file-deps": [ // CHECK-NEXT: "[[PREFIX]]/modules-fmodule-name-no-module-built.m", // CHECK-NEXT: "[[PREFIX]]/Inputs/header3.h", -// CHECK-NEXT: "[[PREFIX]]/Inputs/header.h" +// CHECK-NEXT: "[[PREFIX]]/Inputs/header.h", +// CHECK-NEXT: "Inputs/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/modules-fmodule-name-no-module-built.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-header-sharing.m b/clang/test/ClangScanDeps/modules-header-sharing.m index 31ef351ec38b7..005b22dc6902a 100644 --- a/clang/test/ClangScanDeps/modules-header-sharing.m +++ b/clang/test/ClangScanDeps/modules-header-sharing.m @@ -79,7 +79,8 @@ // CHECK: ], // CHECK: "file-deps": [ // CHECK-NEXT: "[[PREFIX]]/tu.m", -// CHECK-NEXT: "[[PREFIX]]/shared/H.h" +// CHECK-NEXT: "[[PREFIX]]/shared/H.h", +// CHECK-NEXT: "[[PREFIX]]/frameworks/A.framework/Modules/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-implementation-module-map.c b/clang/test/ClangScanDeps/modules-implementation-module-map.c index b7637d0c9143a..a7170aab2448c 100644 --- a/clang/test/ClangScanDeps/modules-implementation-module-map.c +++ b/clang/test/ClangScanDeps/modules-implementation-module-map.c @@ -28,7 +28,8 @@ framework module FWPrivate { header "private.h" } // CHECK: "-fmodule-name=FWPrivate", // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-NEXT: "[[PREFIX]]/tu.m", +// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-implementation-private.m b/clang/test/ClangScanDeps/modules-implementation-private.m index b376073f4b9ee..210fbfb424aca 100644 --- a/clang/test/ClangScanDeps/modules-implementation-private.m +++ b/clang/test/ClangScanDeps/modules-implementation-private.m @@ -65,7 +65,8 @@ // CHECK: "file-deps": [ // CHECK-NEXT: "[[PREFIX]]/tu.m", // CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Missed.h", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h" +// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h", +// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } `````````` </details> https://github.com/llvm/llvm-project/pull/160226 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
