https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/114079
The dependency scanner collects file dependencies of modules into a `llvm::StringSet`. However, we don't need the deduplication it performs, since that's already guaranteed by the PCM we read the paths from. We also don't need to report the file dependencies in any particular order. This allows us to switch from a set to a vector to avoid the overhead of string hashing and establishing deterministic order. The order of file dependencies is no longer lexicographical, but it's still deterministic (inherited from the PCM file). >From 64c5459646f5f7a4dba706fcef6f50c69c8792d2 Mon Sep 17 00:00:00 2001 From: Jan Svoboda <jan_svob...@apple.com> Date: Tue, 22 Oct 2024 16:31:18 -0700 Subject: [PATCH 1/3] [clang][deps] Ignore file dependency ordering in tests --- clang/test/ClangScanDeps/diagnostics.c | 6 ++-- .../header-search-pruning-transitive.c | 30 ++++++++-------- clang/test/ClangScanDeps/line-directive.c | 4 +-- clang/test/ClangScanDeps/link-libraries.c | 20 +++++------ .../test/ClangScanDeps/modules-context-hash.c | 16 ++++----- clang/test/ClangScanDeps/modules-dep-args.c | 10 +++--- .../ClangScanDeps/modules-extern-submodule.c | 20 +++++------ .../ClangScanDeps/modules-extern-unrelated.m | 22 ++++++------ .../modules-file-path-isolation.c | 4 +-- .../modules-fmodule-name-no-module-built.m | 10 +++--- .../ClangScanDeps/modules-full-by-mod-name.c | 14 ++++---- .../modules-full-output-tu-order.c | 4 +-- clang/test/ClangScanDeps/modules-full.cpp | 20 +++++------ .../modules-has-include-umbrella-header.c | 2 +- .../ClangScanDeps/modules-header-sharing.m | 4 +-- .../modules-implementation-module-map.c | 2 +- .../modules-implementation-private.m | 10 +++--- .../modules-implicit-dot-private.m | 10 +++--- .../modules-incomplete-umbrella.c | 36 +++++++++---------- clang/test/ClangScanDeps/modules-inferred.m | 8 ++--- .../modules-no-undeclared-includes.c | 8 ++--- .../modules-pch-common-submodule.c | 16 ++++----- .../modules-pch-common-via-submodule.c | 16 ++++----- clang/test/ClangScanDeps/modules-pch.c | 30 ++++++++-------- .../ClangScanDeps/modules-priv-fw-from-pub.m | 18 +++++----- .../test/ClangScanDeps/modules-redefinition.m | 6 ++-- .../ClangScanDeps/modules-symlink-dir-vfs.c | 6 ++-- clang/test/ClangScanDeps/modules-transitive.c | 6 ++-- clang/test/ClangScanDeps/optimize-vfs-pch.m | 12 +++---- clang/test/ClangScanDeps/optimize-vfs.m | 14 ++++---- clang/test/ClangScanDeps/removed-args.c | 8 ++--- clang/test/ClangScanDeps/response-file.c | 4 +-- .../ClangScanDeps/working-directory-option.c | 4 +-- 33 files changed, 200 insertions(+), 200 deletions(-) diff --git a/clang/test/ClangScanDeps/diagnostics.c b/clang/test/ClangScanDeps/diagnostics.c index bc05594f7828dc..30751934634424 100644 --- a/clang/test/ClangScanDeps/diagnostics.c +++ b/clang/test/ClangScanDeps/diagnostics.c @@ -34,8 +34,8 @@ module mod { header "mod.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_MOD:.*]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/mod.h" -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/mod.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "mod" @@ -55,7 +55,7 @@ module mod { header "mod.h" } // CHECK-NOT: "-fimplicit-module-maps" // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/header-search-pruning-transitive.c b/clang/test/ClangScanDeps/header-search-pruning-transitive.c index 6c422650902689..8f6489515b60b4 100644 --- a/clang/test/ClangScanDeps/header-search-pruning-transitive.c +++ b/clang/test/ClangScanDeps/header-search-pruning-transitive.c @@ -72,8 +72,8 @@ module X { header "X.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_X:.*]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/X.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/X.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "X" @@ -85,11 +85,11 @@ module X { header "X.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_Y_WITH_A]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Y.h", -// CHECK-NEXT: "[[PREFIX]]/a/a.h", -// CHECK-NEXT: "[[PREFIX]]/begin/begin.h", -// CHECK-NEXT: "[[PREFIX]]/end/end.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Y.h" +// CHECK-DAG: "[[PREFIX]]/a/a.h" +// CHECK-DAG: "[[PREFIX]]/begin/begin.h" +// CHECK-DAG: "[[PREFIX]]/end/end.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "Y" @@ -107,7 +107,7 @@ module X { header "X.h" } // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/test.c" +// CHECK-DAG: "[[PREFIX]]/test.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/test.c" // CHECK-NEXT: } @@ -128,8 +128,8 @@ module X { header "X.h" } // also has a different context hash from the first version of module X. // CHECK-NOT: "context-hash": "[[HASH_X]]", // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/X.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/X.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "X" @@ -141,10 +141,10 @@ module X { header "X.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_Y_WITHOUT_A]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Y.h", -// CHECK-NEXT: "[[PREFIX]]/begin/begin.h", -// CHECK-NEXT: "[[PREFIX]]/end/end.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Y.h" +// CHECK-DAG: "[[PREFIX]]/begin/begin.h" +// CHECK-DAG: "[[PREFIX]]/end/end.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "Y" @@ -162,7 +162,7 @@ module X { header "X.h" } // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/test.c" +// CHECK-DAG: "[[PREFIX]]/test.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/test.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/line-directive.c b/clang/test/ClangScanDeps/line-directive.c index 4bf532167a9352..85a683966b73f0 100644 --- a/clang/test/ClangScanDeps/line-directive.c +++ b/clang/test/ClangScanDeps/line-directive.c @@ -11,8 +11,8 @@ // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" -// CHECK-NEXT: "[[PREFIX]]/header.h" +// CHECK-DAG: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/header.h" // CHECK-NEXT: ] //--- cdb.json.template diff --git a/clang/test/ClangScanDeps/link-libraries.c b/clang/test/ClangScanDeps/link-libraries.c index bc0b0c546ea032..7e8018b5f535d3 100644 --- a/clang/test/ClangScanDeps/link-libraries.c +++ b/clang/test/ClangScanDeps/link-libraries.c @@ -44,8 +44,8 @@ module transitive { // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Inputs/frameworks/Framework.framework/Headers/Framework.h" -// CHECK-NEXT: "[[PREFIX]]/Inputs/frameworks/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Inputs/frameworks/Framework.framework/Headers/Framework.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/frameworks/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -67,8 +67,8 @@ module transitive { // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/direct.h" -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/direct.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "direct" @@ -89,10 +89,10 @@ module transitive { // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Inputs/frameworks/module.modulemap" -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" -// CHECK-NEXT: "[[PREFIX]]/root.h" -// CHECK-NEXT: "[[PREFIX]]/root/textual.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/frameworks/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/root.h" +// CHECK-DAG: "[[PREFIX]]/root/textual.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "root" @@ -104,8 +104,8 @@ module transitive { // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" -// CHECK-NEXT: "[[PREFIX]]/transitive.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/transitive.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { diff --git a/clang/test/ClangScanDeps/modules-context-hash.c b/clang/test/ClangScanDeps/modules-context-hash.c index 69fd8561a2b32a..1006c74dfcd0f3 100644 --- a/clang/test/ClangScanDeps/modules-context-hash.c +++ b/clang/test/ClangScanDeps/modules-context-hash.c @@ -34,9 +34,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_MOD_A:.*]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/a/dep.h", -// CHECK-NEXT: "[[PREFIX]]/mod.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/a/dep.h" +// CHECK-DAG: "[[PREFIX]]/mod.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "mod" @@ -54,7 +54,7 @@ // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } @@ -72,9 +72,9 @@ // CHECK: ], // CHECK-NOT: "context-hash": "[[HASH_MOD_A]]", // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/b/dep.h", -// CHECK-NEXT: "[[PREFIX]]/mod.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/b/dep.h" +// CHECK-DAG: "[[PREFIX]]/mod.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "mod" @@ -92,7 +92,7 @@ // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-dep-args.c b/clang/test/ClangScanDeps/modules-dep-args.c index 14de2e8f4594a1..9d31844e31a005 100644 --- a/clang/test/ClangScanDeps/modules-dep-args.c +++ b/clang/test/ClangScanDeps/modules-dep-args.c @@ -58,8 +58,8 @@ module Direct { header "direct.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/direct.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/direct.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "Direct" @@ -71,8 +71,8 @@ module Direct { header "direct.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/transitive.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/transitive.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "Transitive" @@ -96,7 +96,7 @@ module Direct { header "direct.h" } // CHECK_EAGER: "-fmodule-file=[[PREFIX]]/{{.*}}/Direct-{{.*}}.pcm" // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-extern-submodule.c b/clang/test/ClangScanDeps/modules-extern-submodule.c index 6e9082b0165fdf..aabc4090978a46 100644 --- a/clang/test/ClangScanDeps/modules-extern-submodule.c +++ b/clang/test/ClangScanDeps/modules-extern-submodule.c @@ -49,10 +49,10 @@ module third {} // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/first/first/first.h", -// CHECK-NEXT: "[[PREFIX]]/first/first/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/second/second/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/second/second/sub.modulemap" +// CHECK-DAG: "[[PREFIX]]/first/first/first.h" +// CHECK-DAG: "[[PREFIX]]/first/first/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/second/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/second/sub.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "first" @@ -72,10 +72,10 @@ module third {} // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/second/second/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/second/second/sub.h", -// CHECK-NEXT: "[[PREFIX]]/second/second/sub.modulemap", -// CHECK-NEXT: "[[PREFIX]]/third/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/second/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/second/sub.h" +// CHECK-DAG: "[[PREFIX]]/second/second/sub.modulemap" +// CHECK-DAG: "[[PREFIX]]/third/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "second" @@ -90,7 +90,7 @@ module third {} // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/third/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/third/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "third" @@ -113,7 +113,7 @@ module third {} // CHECK: "-fmodule-file=first=[[PREFIX]]/cache/{{.*}}/first-{{.*}}.pcm", // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/tu.m" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-extern-unrelated.m b/clang/test/ClangScanDeps/modules-extern-unrelated.m index 724779c12a97b7..0a6b7dc91db1b9 100644 --- a/clang/test/ClangScanDeps/modules-extern-unrelated.m +++ b/clang/test/ClangScanDeps/modules-extern-unrelated.m @@ -38,7 +38,7 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/first/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/first/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "first" @@ -50,8 +50,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/first/first_other.h", -// CHECK-NEXT: "[[PREFIX]]/first/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/first/first_other.h" +// CHECK-DAG: "[[PREFIX]]/first/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "first_other" @@ -69,9 +69,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/first/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/second/second.h", -// CHECK-NEXT: "[[PREFIX]]/second/second.modulemap" +// CHECK-DAG: "[[PREFIX]]/first/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/second.h" +// CHECK-DAG: "[[PREFIX]]/second/second.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "second" @@ -93,10 +93,10 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/first/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/second/second.modulemap", -// CHECK-NEXT: "[[PREFIX]]/zeroth/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/zeroth/zeroth.h" +// CHECK-DAG: "[[PREFIX]]/first/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/second.modulemap" +// CHECK-DAG: "[[PREFIX]]/zeroth/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/zeroth/zeroth.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "zeroth" @@ -117,7 +117,7 @@ // CHECK: ], // CHECK-NEXT: "executable": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/tu.m" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-file-path-isolation.c b/clang/test/ClangScanDeps/modules-file-path-isolation.c index d4fef2f4fdd28e..ddd26a70cb8ed5 100644 --- a/clang/test/ClangScanDeps/modules-file-path-isolation.c +++ b/clang/test/ClangScanDeps/modules-file-path-isolation.c @@ -17,8 +17,8 @@ // CHECK: "modules": [ // CHECK-NEXT: { // CHECK: "file-deps": [ -// CHECK-NEXT: "{{.*}}A.h", -// CHECK-NEXT: "{{.*}}module.modulemap" +// CHECK-DAG: "{{.*}}A.h" +// CHECK-DAG: "{{.*}}module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "A" 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 e4d5caff9236e7..c7e8c12ea950cc 100644 --- a/clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m +++ b/clang/test/ClangScanDeps/modules-fmodule-name-no-module-built.m @@ -25,8 +25,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_H2:[A-Z0-9]+]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Inputs/header2.h", -// CHECK-NEXT: "[[PREFIX]]/Inputs/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Inputs/header2.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "header2" @@ -44,9 +44,9 @@ // CHECK-NEXT: "command-line": [ // CHECK: ], // 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-DAG: "[[PREFIX]]/modules-fmodule-name-no-module-built.m" +// CHECK-DAG: "[[PREFIX]]/Inputs/header3.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/header.h" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/modules-fmodule-name-no-module-built.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-full-by-mod-name.c b/clang/test/ClangScanDeps/modules-full-by-mod-name.c index dd2b3f62e36635..db68404a19a355 100644 --- a/clang/test/ClangScanDeps/modules-full-by-mod-name.c +++ b/clang/test/ClangScanDeps/modules-full-by-mod-name.c @@ -42,8 +42,8 @@ module transitive { header "transitive.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/direct.h" -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/direct.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "direct" @@ -60,9 +60,9 @@ module transitive { header "transitive.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" -// CHECK-NEXT: "[[PREFIX]]/root.h" -// CHECK-NEXT: "[[PREFIX]]/root/textual.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/root.h" +// CHECK-DAG: "[[PREFIX]]/root/textual.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "root" @@ -74,8 +74,8 @@ module transitive { header "transitive.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" -// CHECK-NEXT: "[[PREFIX]]/transitive.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/transitive.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "transitive" diff --git a/clang/test/ClangScanDeps/modules-full-output-tu-order.c b/clang/test/ClangScanDeps/modules-full-output-tu-order.c index 065b8ac8ae07f0..ba2e17237fbc5f 100644 --- a/clang/test/ClangScanDeps/modules-full-output-tu-order.c +++ b/clang/test/ClangScanDeps/modules-full-output-tu-order.c @@ -36,7 +36,7 @@ // CHECK-NEXT: "ONE" // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } @@ -52,7 +52,7 @@ // CHECK-NEXT: "TWO" // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK: } diff --git a/clang/test/ClangScanDeps/modules-full.cpp b/clang/test/ClangScanDeps/modules-full.cpp index e9b4386da5b5e6..457c5154cb98dc 100644 --- a/clang/test/ClangScanDeps/modules-full.cpp +++ b/clang/test/ClangScanDeps/modules-full.cpp @@ -41,8 +41,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_H1_DINCLUDE:[A-Z0-9]+]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Inputs/header.h", -// CHECK-NEXT: "[[PREFIX]]/Inputs/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Inputs/header.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "header1" @@ -60,8 +60,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_H1:[A-Z0-9]+]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Inputs/header.h", -// CHECK-NEXT: "[[PREFIX]]/Inputs/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Inputs/header.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "header1" @@ -79,8 +79,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_H2_DINCLUDE]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/Inputs/header2.h", -// CHECK-NEXT: "[[PREFIX]]/Inputs/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/Inputs/header2.h" +// CHECK-DAG: "[[PREFIX]]/Inputs/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "header2" @@ -104,7 +104,7 @@ // CHECK: ], // CHECK-NEXT: "executable": "{{.*}}clang{{.*}}" // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules_cdb_input2.cpp" +// CHECK-DAG: "[[PREFIX]]/modules_cdb_input2.cpp" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/modules_cdb_input2.cpp" // CHECK-NEXT: } @@ -127,7 +127,7 @@ // CHECK: ], // CHECK-NEXT: "executable": "{{.*}}clang{{.*}}" // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules_cdb_input.cpp" +// CHECK-DAG: "[[PREFIX]]/modules_cdb_input.cpp" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/modules_cdb_input.cpp" // CHECK-NEXT: } @@ -150,7 +150,7 @@ // CHECK: ], // CHECK-NEXT: "executable": "{{.*}}clang{{.*}}" // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules_cdb_input.cpp" +// CHECK-DAG: "[[PREFIX]]/modules_cdb_input.cpp" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/modules_cdb_input.cpp" // CHECK-NEXT: } @@ -173,7 +173,7 @@ // CHECK: ], // CHECK-NEXT: "executable": "{{.*}}clang{{.*}}" // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules_cdb_input.cpp" +// CHECK-DAG: "[[PREFIX]]/modules_cdb_input.cpp" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/modules_cdb_input.cpp" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-has-include-umbrella-header.c b/clang/test/ClangScanDeps/modules-has-include-umbrella-header.c index 022c59ca65db2e..62f9c19b2da8d0 100644 --- a/clang/test/ClangScanDeps/modules-has-include-umbrella-header.c +++ b/clang/test/ClangScanDeps/modules-has-include-umbrella-header.c @@ -65,7 +65,7 @@ module Dependency { header "dependency.h" } // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/tu.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-header-sharing.m b/clang/test/ClangScanDeps/modules-header-sharing.m index 31ef351ec38b73..866f3621f8cf83 100644 --- a/clang/test/ClangScanDeps/modules-header-sharing.m +++ b/clang/test/ClangScanDeps/modules-header-sharing.m @@ -78,8 +78,8 @@ // CHECK: "-fmodule-name=A", // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m", -// CHECK-NEXT: "[[PREFIX]]/shared/H.h" +// CHECK-DAG: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/shared/H.h" // 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 b7637d0c9143a6..9140772d35641b 100644 --- a/clang/test/ClangScanDeps/modules-implementation-module-map.c +++ b/clang/test/ClangScanDeps/modules-implementation-module-map.c @@ -28,7 +28,7 @@ framework module FWPrivate { header "private.h" } // CHECK: "-fmodule-name=FWPrivate", // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/tu.m" // 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 b376073f4b9ee9..511b79175d8da7 100644 --- a/clang/test/ClangScanDeps/modules-implementation-private.m +++ b/clang/test/ClangScanDeps/modules-implementation-private.m @@ -37,8 +37,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -63,9 +63,9 @@ // CHECK-NEXT: "command-line": [ // CHECK: ], // 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-DAG: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Missed.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-implicit-dot-private.m b/clang/test/ClangScanDeps/modules-implicit-dot-private.m index b3bc90f03f1799..cd4ddfe4931066 100644 --- a/clang/test/ClangScanDeps/modules-implicit-dot-private.m +++ b/clang/test/ClangScanDeps/modules-implicit-dot-private.m @@ -32,8 +32,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -50,8 +50,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -80,7 +80,7 @@ // CHECK: "-fmodule-file={{.*}}/FW_Private-{{.*}}.pcm" // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/tu.m" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-incomplete-umbrella.c b/clang/test/ClangScanDeps/modules-incomplete-umbrella.c index 2c5d5f547f3e7c..021540c20aebed 100644 --- a/clang/test/ClangScanDeps/modules-incomplete-umbrella.c +++ b/clang/test/ClangScanDeps/modules-incomplete-umbrella.c @@ -44,8 +44,8 @@ framework module FW_Private { // CHECK_TU: ], // CHECK_TU-NEXT: "context-hash": "{{.*}}", // CHECK_TU-NEXT: "file-deps": [ -// CHECK_TU-NEXT: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h", -// CHECK_TU-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" +// CHECK_TU-DAG: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h" +// CHECK_TU-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" // CHECK_TU-NEXT: ], // CHECK_TU-NEXT: "link-libraries": [ // CHECK_TU-NEXT: { @@ -62,9 +62,9 @@ framework module FW_Private { // CHECK_TU: ], // CHECK_TU-NEXT: "context-hash": "{{.*}}", // CHECK_TU-NEXT: "file-deps": [ -// CHECK_TU-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap", -// CHECK_TU-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h", -// CHECK_TU-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/One.h" +// CHECK_TU-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK_TU-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" +// CHECK_TU-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/One.h" // CHECK_TU-NEXT: ], // CHECK_TU-NEXT: "link-libraries": [ // CHECK_TU-NEXT: { @@ -93,8 +93,8 @@ framework module FW_Private { // CHECK_TU: "-fmodule-file={{.*}}/FW_Private-{{.*}}.pcm" // CHECK_TU: ], // CHECK_TU: "file-deps": [ -// CHECK_TU-NEXT: "[[PREFIX]]/from_tu.m", -// CHECK_TU-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Two.h" +// CHECK_TU-DAG: "[[PREFIX]]/from_tu.m" +// CHECK_TU-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Two.h" // CHECK_TU-NEXT: ], // CHECK_TU-NEXT: "input-file": "[[PREFIX]]/from_tu.m" // CHECK_TU-NEXT: } @@ -134,8 +134,8 @@ module Mod { header "Mod.h" } // CHECK_MODULE: ], // CHECK_MODULE-NEXT: "context-hash": "{{.*}}", // CHECK_MODULE-NEXT: "file-deps": [ -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h", -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" // CHECK_MODULE-NEXT: ], // CHECK_MODULE-NEXT: "link-libraries": [ // CHECK_MODULE-NEXT: { @@ -152,9 +152,9 @@ module Mod { header "Mod.h" } // CHECK_MODULE: ], // CHECK_MODULE-NEXT: "context-hash": "{{.*}}", // CHECK_MODULE-NEXT: "file-deps": [ -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap", -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h", -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/One.h" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/One.h" // CHECK_MODULE-NEXT: ], // CHECK_MODULE-NEXT: "link-libraries": [ // CHECK_MODULE-NEXT: { @@ -182,11 +182,11 @@ module Mod { header "Mod.h" } // CHECK_MODULE: ], // CHECK_MODULE-NEXT: "context-hash": "{{.*}}", // CHECK_MODULE-NEXT: "file-deps": [ -// CHECK_MODULE-NEXT: "[[PREFIX]]/Mod.h" -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap", -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap", -// CHECK_MODULE-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Two.h", -// CHECK_MODULE-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK_MODULE-DAG: "[[PREFIX]]/Mod.h" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK_MODULE-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/Two.h" +// CHECK_MODULE-DAG: "[[PREFIX]]/module.modulemap" // CHECK_MODULE-NEXT: ], // CHECK_MODULE-NEXT: "link-libraries": [], // CHECK_MODULE-NEXT: "name": "Mod" @@ -204,7 +204,7 @@ module Mod { header "Mod.h" } // CHECK_MODULE-NEXT: "command-line": [ // CHECK_MODULE: ], // CHECK_MODULE: "file-deps": [ -// CHECK_MODULE-NEXT: "[[PREFIX]]/from_module.m" +// CHECK_MODULE-DAG: "[[PREFIX]]/from_module.m" // CHECK_MODULE-NEXT: ], // CHECK_MODULE-NEXT: "input-file": "[[PREFIX]]/from_module.m" // CHECK_MODULE-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-inferred.m b/clang/test/ClangScanDeps/modules-inferred.m index b8f17b22082705..a86906fbb2eea8 100644 --- a/clang/test/ClangScanDeps/modules-inferred.m +++ b/clang/test/ClangScanDeps/modules-inferred.m @@ -37,9 +37,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/frameworks/Inferred.framework/Frameworks/Sub.framework/Headers/Sub.h", -// CHECK-NEXT: "[[PREFIX]]/frameworks/Inferred.framework/Headers/Inferred.h", -// CHECK-NEXT: "[[PREFIX]]/frameworks/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/Inferred.framework/Frameworks/Sub.framework/Headers/Sub.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/Inferred.framework/Headers/Inferred.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -64,7 +64,7 @@ // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/tu.m" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-no-undeclared-includes.c b/clang/test/ClangScanDeps/modules-no-undeclared-includes.c index d288095cb0bd76..c7ff9f8139c2de 100644 --- a/clang/test/ClangScanDeps/modules-no-undeclared-includes.c +++ b/clang/test/ClangScanDeps/modules-no-undeclared-includes.c @@ -43,9 +43,9 @@ module User [no_undeclared_includes] { header "user.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/undeclared/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/user.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/undeclared/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/user.h" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "User" @@ -63,7 +63,7 @@ module User [no_undeclared_includes] { header "user.h" } // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/test.c" +// CHECK-DAG: "[[PREFIX]]/test.c" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/test.c" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-pch-common-submodule.c b/clang/test/ClangScanDeps/modules-pch-common-submodule.c index 03ebc62c1ab3cf..2230171d0335cb 100644 --- a/clang/test/ClangScanDeps/modules-pch-common-submodule.c +++ b/clang/test/ClangScanDeps/modules-pch-common-submodule.c @@ -27,9 +27,9 @@ // CHECK-PCH: ], // CHECK-PCH-NEXT: "context-hash": "[[HASH_MOD_COMMON:.*]]", // CHECK-PCH-NEXT: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/mod_common.h", -// CHECK-PCH-NEXT: "[[PREFIX]]/mod_common_sub.h", -// CHECK-PCH-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-PCH-DAG: "[[PREFIX]]/mod_common.h" +// CHECK-PCH-DAG: "[[PREFIX]]/mod_common_sub.h" +// CHECK-PCH-DAG: "[[PREFIX]]/module.modulemap" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "link-libraries": [], // CHECK-PCH-NEXT: "name": "ModCommon" @@ -47,7 +47,7 @@ // CHECK-PCH-NEXT: "command-line": [ // CHECK-PCH: ], // CHECK-PCH: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/pch.h" +// CHECK-PCH-DAG: "[[PREFIX]]/pch.h" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "input-file": "[[PREFIX]]/pch.h" // CHECK-PCH-NEXT: } @@ -76,8 +76,8 @@ // CHECK-TU: ], // CHECK-TU-NEXT: "context-hash": "[[HASH_MOD_TU:.*]]", // CHECK-TU-NEXT: "file-deps": [ -// CHECK-TU-NEXT: "[[PREFIX]]/mod_tu.h", -// CHECK-TU-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-TU-DAG: "[[PREFIX]]/mod_tu.h" +// CHECK-TU-DAG: "[[PREFIX]]/module.modulemap" // CHECK-TU-NEXT: ], // CHECK-TU-NEXT: "link-libraries": [], // CHECK-TU-NEXT: "name": "ModTU" @@ -95,8 +95,8 @@ // CHECK-TU-NEXT: "command-line": [ // CHECK-TU: ], // CHECK-TU: "file-deps": [ -// CHECK-TU-NEXT: "[[PREFIX]]/tu.c", -// CHECK-TU-NEXT: "[[PREFIX]]/pch.h.pch" +// CHECK-TU-DAG: "[[PREFIX]]/tu.c" +// CHECK-TU-DAG: "[[PREFIX]]/pch.h.pch" // CHECK-TU-NEXT: ], // CHECK-TU-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-TU-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-pch-common-via-submodule.c b/clang/test/ClangScanDeps/modules-pch-common-via-submodule.c index 725ac0e6b224fa..b6d73e2fb12e06 100644 --- a/clang/test/ClangScanDeps/modules-pch-common-via-submodule.c +++ b/clang/test/ClangScanDeps/modules-pch-common-via-submodule.c @@ -24,8 +24,8 @@ // CHECK-PCH: ], // CHECK-PCH-NEXT: "context-hash": "[[HASH_MOD_COMMON:.*]]", // CHECK-PCH-NEXT: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/mod_common.h", -// CHECK-PCH-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-PCH-DAG: "[[PREFIX]]/mod_common.h" +// CHECK-PCH-DAG: "[[PREFIX]]/module.modulemap" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "link-libraries": [], // CHECK-PCH-NEXT: "name": "ModCommon" @@ -43,7 +43,7 @@ // CHECK-PCH-NEXT: "command-line": [ // CHECK-PCH: ], // CHECK-PCH: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/pch.h" +// CHECK-PCH-DAG: "[[PREFIX]]/pch.h" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "input-file": "[[PREFIX]]/pch.h" // CHECK-PCH-NEXT: } @@ -72,9 +72,9 @@ // CHECK-TU: ], // CHECK-TU-NEXT: "context-hash": "[[HASH_MOD_TU:.*]]", // CHECK-TU-NEXT: "file-deps": [ -// CHECK-TU-NEXT: "[[PREFIX]]/mod_tu.h", -// CHECK-TU-NEXT: "[[PREFIX]]/mod_tu_sub.h", -// CHECK-TU-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-TU-DAG: "[[PREFIX]]/mod_tu.h" +// CHECK-TU-DAG: "[[PREFIX]]/mod_tu_sub.h" +// CHECK-TU-DAG: "[[PREFIX]]/module.modulemap" // CHECK-TU-NEXT: ], // CHECK-TU-NEXT: "link-libraries": [], // CHECK-TU-NEXT: "name": "ModTU" @@ -92,8 +92,8 @@ // CHECK-TU-NEXT: "command-line": [ // CHECK-TU: ], // CHECK-TU: "file-deps": [ -// CHECK-TU-NEXT: "[[PREFIX]]/tu.c", -// CHECK-TU-NEXT: "[[PREFIX]]/pch.h.pch" +// CHECK-TU-DAG: "[[PREFIX]]/tu.c" +// CHECK-TU-DAG: "[[PREFIX]]/pch.h.pch" // CHECK-TU-NEXT: ], // CHECK-TU-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-TU-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-pch.c b/clang/test/ClangScanDeps/modules-pch.c index 467bfd9af47ae5..1dea5860139c95 100644 --- a/clang/test/ClangScanDeps/modules-pch.c +++ b/clang/test/ClangScanDeps/modules-pch.c @@ -25,8 +25,8 @@ // CHECK-PCH: ], // CHECK-PCH-NEXT: "context-hash": "[[HASH_MOD_COMMON_1:.*]]", // CHECK-PCH-NEXT: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/mod_common_1.h", -// CHECK-PCH-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-PCH-DAG: "[[PREFIX]]/mod_common_1.h" +// CHECK-PCH-DAG: "[[PREFIX]]/module.modulemap" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "link-libraries": [], // CHECK-PCH-NEXT: "name": "ModCommon1" @@ -38,8 +38,8 @@ // CHECK-PCH: ], // CHECK-PCH-NEXT: "context-hash": "[[HASH_MOD_COMMON_2:.*]]", // CHECK-PCH-NEXT: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/mod_common_2.h", -// CHECK-PCH-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-PCH-DAG: "[[PREFIX]]/mod_common_2.h" +// CHECK-PCH-DAG: "[[PREFIX]]/module.modulemap" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "link-libraries": [], // CHECK-PCH-NEXT: "name": "ModCommon2" @@ -56,8 +56,8 @@ // CHECK-PCH: ], // CHECK-PCH-NEXT: "context-hash": "[[HASH_MOD_PCH:.*]]", // CHECK-PCH-NEXT: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/mod_pch.h", -// CHECK-PCH-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-PCH-DAG: "[[PREFIX]]/mod_pch.h" +// CHECK-PCH-DAG: "[[PREFIX]]/module.modulemap" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "link-libraries": [], // CHECK-PCH-NEXT: "name": "ModPCH" @@ -79,7 +79,7 @@ // CHECK-PCH-NEXT: "command-line": [ // CHECK-PCH: ], // CHECK-PCH: "file-deps": [ -// CHECK-PCH-NEXT: "[[PREFIX]]/pch.h" +// CHECK-PCH-DAG: "[[PREFIX]]/pch.h" // CHECK-PCH-NEXT: ], // CHECK-PCH-NEXT: "input-file": "[[PREFIX]]/pch.h" // CHECK-PCH-NEXT: } @@ -113,8 +113,8 @@ // CHECK-TU: ], // CHECK-TU-NEXT: "context-hash": "[[HASH_MOD_TU:.*]]", // CHECK-TU-NEXT: "file-deps": [ -// CHECK-TU-NEXT: "[[PREFIX]]/mod_tu.h", -// CHECK-TU-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-TU-DAG: "[[PREFIX]]/mod_tu.h" +// CHECK-TU-DAG: "[[PREFIX]]/module.modulemap" // CHECK-TU-NEXT: ], // CHECK-TU-NEXT: "link-libraries": [], // CHECK-TU-NEXT: "name": "ModTU" @@ -132,8 +132,8 @@ // CHECK-TU-NEXT: "command-line": [ // CHECK-TU: ], // CHECK-TU: "file-deps": [ -// CHECK-TU-NEXT: "[[PREFIX]]/tu.c", -// CHECK-TU-NEXT: "[[PREFIX]]/pch.h.pch" +// CHECK-TU-DAG: "[[PREFIX]]/tu.c" +// CHECK-TU-DAG: "[[PREFIX]]/pch.h.pch" // CHECK-TU-NEXT: ], // CHECK-TU-NEXT: "input-file": "[[PREFIX]]/tu.c" // CHECK-TU-NEXT: } @@ -163,8 +163,8 @@ // CHECK-TU-WITH-COMMON: ], // CHECK-TU-WITH-COMMON-NEXT: "context-hash": "[[HASH_MOD_TU_WITH_COMMON:.*]]", // CHECK-TU-WITH-COMMON-NEXT: "file-deps": [ -// CHECK-TU-WITH-COMMON-NEXT: "[[PREFIX]]/mod_tu_with_common.h", -// CHECK-TU-WITH-COMMON-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-TU-WITH-COMMON-DAG: "[[PREFIX]]/mod_tu_with_common.h" +// CHECK-TU-WITH-COMMON-DAG: "[[PREFIX]]/module.modulemap" // CHECK-TU-WITH-COMMON-NEXT: ], // CHECK-TU-WITH-COMMON-NEXT: "link-libraries": [], // CHECK-TU-WITH-COMMON-NEXT: "name": "ModTUWithCommon" @@ -183,8 +183,8 @@ // CHECK-TU-WITH-COMMON: "-fmodule-file=[[PREFIX]]/build/{{.*}}/ModCommon2-{{.*}}.pcm" // CHECK-TU-WITH-COMMON: ], // CHECK-TU-WITH-COMMON: "file-deps": [ -// CHECK-TU-WITH-COMMON-NEXT: "[[PREFIX]]/tu_with_common.c", -// CHECK-TU-WITH-COMMON-NEXT: "[[PREFIX]]/pch.h.pch" +// CHECK-TU-WITH-COMMON-DAG: "[[PREFIX]]/tu_with_common.c" +// CHECK-TU-WITH-COMMON-DAG: "[[PREFIX]]/pch.h.pch" // CHECK-TU-WITH-COMMON-NEXT: ], // CHECK-TU-WITH-COMMON-NEXT: "input-file": "[[PREFIX]]/tu_with_common.c" // CHECK-TU-WITH-COMMON-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-priv-fw-from-pub.m b/clang/test/ClangScanDeps/modules-priv-fw-from-pub.m index e9613088463630..c34a654885ba73 100644 --- a/clang/test/ClangScanDeps/modules-priv-fw-from-pub.m +++ b/clang/test/ClangScanDeps/modules-priv-fw-from-pub.m @@ -42,8 +42,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules/dependency.h", -// CHECK-NEXT: "[[PREFIX]]/modules/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/modules/dependency.h" +// CHECK-DAG: "[[PREFIX]]/modules/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "Dependency" @@ -60,9 +60,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Headers/FW.h" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -84,9 +84,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap", -// CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h", -// CHECK-NEXT: "[[PREFIX]]/modules/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/Modules/module.private.modulemap" +// CHECK-DAG: "[[PREFIX]]/frameworks/FW.framework/PrivateHeaders/FW_Private.h" +// CHECK-DAG: "[[PREFIX]]/modules/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { @@ -111,7 +111,7 @@ // CHECK-NEXT: "command-line": [ // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.m" +// CHECK-DAG: "[[PREFIX]]/tu.m" // CHECK-NEXT: ], // CHECK-NEXT: "input-file": "[[PREFIX]]/tu.m" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/modules-redefinition.m b/clang/test/ClangScanDeps/modules-redefinition.m index 6954e1ed72f16e..cf89ba082cd350 100644 --- a/clang/test/ClangScanDeps/modules-redefinition.m +++ b/clang/test/ClangScanDeps/modules-redefinition.m @@ -45,9 +45,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: [[PREFIX]]/first/first.h", -// CHECK-NEXT: [[PREFIX]]/first/module.modulemap", -// CHECK-NEXT: [[PREFIX]]/third/module.modulemap" +// CHECK-DAG: [[PREFIX]]/first/first.h" +// CHECK-DAG: [[PREFIX]]/first/module.modulemap" +// CHECK-DAG: [[PREFIX]]/third/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "first" diff --git a/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c b/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c index 127c0c6b6d2ab6..28d3d521a0b5db 100644 --- a/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c +++ b/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c @@ -75,9 +75,9 @@ framework module FW { umbrella header "FW.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/copy/FW.h", -// CHECK-NEXT: "[[PREFIX]]/copy/Header.h", -// CHECK-NEXT: "[[PREFIX]]/frameworks-symlink/FW.framework/Modules/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/copy/FW.h" +// CHECK-DAG: "[[PREFIX]]/copy/Header.h" +// CHECK-DAG: "[[PREFIX]]/frameworks-symlink/FW.framework/Modules/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [ // CHECK-NEXT: { diff --git a/clang/test/ClangScanDeps/modules-transitive.c b/clang/test/ClangScanDeps/modules-transitive.c index 5d9bdbc95a7e96..e531b71eeba80d 100644 --- a/clang/test/ClangScanDeps/modules-transitive.c +++ b/clang/test/ClangScanDeps/modules-transitive.c @@ -48,9 +48,9 @@ module third { header "third.h" } // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/first/first.h" -// CHECK-NEXT: "[[PREFIX]]/first/module.modulemap" -// CHECK-NEXT: "[[PREFIX]]/second/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/first/first.h" +// CHECK-DAG: "[[PREFIX]]/first/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/second/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "first" diff --git a/clang/test/ClangScanDeps/optimize-vfs-pch.m b/clang/test/ClangScanDeps/optimize-vfs-pch.m index 0b5cb08d365eee..7b2882523a7012 100644 --- a/clang/test/ClangScanDeps/optimize-vfs-pch.m +++ b/clang/test/ClangScanDeps/optimize-vfs-pch.m @@ -64,10 +64,10 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "{{.*}}" -// CHECK-NEXT: "{{.*}}" -// CHECK-NEXT: "{{.*}}" -// CHECK-NEXT: "{{.*}}" +// CHECK-DAG: "{{.*}}" +// CHECK-DAG: "{{.*}}" +// CHECK-DAG: "{{.*}}" +// CHECK-DAG: "{{.*}}" // CHECK-NEXT: ], // CHECK: "name": "D" // CHECK-NEXT: }, @@ -79,8 +79,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "{{.*}}" -// CHECK-NEXT: "{{.*}}" +// CHECK-DAG: "{{.*}}" +// CHECK-DAG: "{{.*}}" // CHECK-NEXT: ], // CHECK: "name": "E" // CHECK-NEXT: } diff --git a/clang/test/ClangScanDeps/optimize-vfs.m b/clang/test/ClangScanDeps/optimize-vfs.m index 05968715358ea7..ec24f7999383a2 100644 --- a/clang/test/ClangScanDeps/optimize-vfs.m +++ b/clang/test/ClangScanDeps/optimize-vfs.m @@ -24,8 +24,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/build/A.h", -// CHECK-NEXT: "[[PREFIX]]/build/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/build/A.h" +// CHECK-DAG: "[[PREFIX]]/build/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "A" @@ -38,8 +38,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules/B/B.h", -// CHECK-NEXT: "[[PREFIX]]/modules/B/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/modules/B/B.h" +// CHECK-DAG: "[[PREFIX]]/modules/B/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "B" @@ -57,9 +57,9 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "{{.*}}", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/modules/B/module.modulemap", -// CHECK-NEXT: "[[PREFIX]]/modules/C/C.h", -// CHECK-NEXT: "[[PREFIX]]/modules/C/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/modules/B/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/modules/C/C.h" +// CHECK-DAG: "[[PREFIX]]/modules/C/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "C" diff --git a/clang/test/ClangScanDeps/removed-args.c b/clang/test/ClangScanDeps/removed-args.c index c1d779dbe06105..3b449cdb868d90 100644 --- a/clang/test/ClangScanDeps/removed-args.c +++ b/clang/test/ClangScanDeps/removed-args.c @@ -39,8 +39,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_MOD_HEADER:.*]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/mod_header.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/mod_header.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "ModHeader" @@ -66,8 +66,8 @@ // CHECK: ], // CHECK-NEXT: "context-hash": "[[HASH_MOD_TU:.*]]", // CHECK-NEXT: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/mod_tu.h", -// CHECK-NEXT: "[[PREFIX]]/module.modulemap" +// CHECK-DAG: "[[PREFIX]]/mod_tu.h" +// CHECK-DAG: "[[PREFIX]]/module.modulemap" // CHECK-NEXT: ], // CHECK-NEXT: "link-libraries": [], // CHECK-NEXT: "name": "ModTU" diff --git a/clang/test/ClangScanDeps/response-file.c b/clang/test/ClangScanDeps/response-file.c index c08105c1272029..954b592a1a4c57 100644 --- a/clang/test/ClangScanDeps/response-file.c +++ b/clang/test/ClangScanDeps/response-file.c @@ -17,8 +17,8 @@ // CHECK-NEXT: "include" // CHECK: ], // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/tu.c" -// CHECK-NEXT: "[[PREFIX]]/include/header.h" +// CHECK-DAG: "[[PREFIX]]/tu.c" +// CHECK-DAG: "[[PREFIX]]/include/header.h" // CHECK-NEXT: ] //--- cdb.json.template diff --git a/clang/test/ClangScanDeps/working-directory-option.c b/clang/test/ClangScanDeps/working-directory-option.c index d57497d405d30f..a200aaf01cd2ac 100644 --- a/clang/test/ClangScanDeps/working-directory-option.c +++ b/clang/test/ClangScanDeps/working-directory-option.c @@ -12,8 +12,8 @@ // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t // CHECK: "file-deps": [ -// CHECK-NEXT: "[[PREFIX]]/cwd/t.c" -// CHECK-NEXT: "[[PREFIX]]/cwd/relative/h1.h" +// CHECK-DAG: "[[PREFIX]]/cwd/t.c" +// CHECK-DAG: "[[PREFIX]]/cwd/relative/h1.h" // CHECK-NEXT: ] // CHECK-NEXT: "input-file": "[[PREFIX]]/cwd/t.c" >From 19354f2706593215c36a41e68d951fd4118e047d Mon Sep 17 00:00:00 2001 From: Jan Svoboda <jan_svob...@apple.com> Date: Tue, 22 Oct 2024 09:41:18 -0700 Subject: [PATCH 2/3] [clang][deps] Move file deps from a set into a vector, stop sorting --- .../Tooling/DependencyScanning/ModuleDepCollector.h | 2 +- .../Tooling/DependencyScanning/ModuleDepCollector.cpp | 10 +++++----- clang/tools/clang-scan-deps/ClangScanDeps.cpp | 9 +-------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h b/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h index 3de19d756da00d..7b71a7a8e648b2 100644 --- a/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h +++ b/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h @@ -122,7 +122,7 @@ struct ModuleDeps { /// A collection of absolute paths to files that this module directly depends /// on, not including transitive dependencies. - llvm::StringSet<> FileDeps; + std::vector<std::string> FileDeps; /// A collection of absolute paths to module map files that this module needs /// to know about. The ordering is significant. diff --git a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp index 637416cd1fc621..f930dfaca3cc05 100644 --- a/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp +++ b/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp @@ -779,23 +779,23 @@ static StringRef makeAbsoluteAndPreferred(CompilerInstance &CI, StringRef Path, void ModuleDepCollector::addFileDep(StringRef Path) { if (IsStdModuleP1689Format) { // Within P1689 format, we don't want all the paths to be absolute path - // since it may violate the tranditional make style dependencies info. - FileDeps.push_back(std::string(Path)); + // since it may violate the traditional make style dependencies info. + FileDeps.emplace_back(Path); return; } llvm::SmallString<256> Storage; Path = makeAbsoluteAndPreferred(ScanInstance, Path, Storage); - FileDeps.push_back(std::string(Path)); + FileDeps.emplace_back(Path); } void ModuleDepCollector::addFileDep(ModuleDeps &MD, StringRef Path) { if (IsStdModuleP1689Format) { - MD.FileDeps.insert(Path); + MD.FileDeps.emplace_back(Path); return; } llvm::SmallString<256> Storage; Path = makeAbsoluteAndPreferred(ScanInstance, Path, Storage); - MD.FileDeps.insert(Path); + MD.FileDeps.emplace_back(Path); } diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp index f474b1346b1be1..252eb114b227bd 100644 --- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp +++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp @@ -338,13 +338,6 @@ static auto toJSONStrings(llvm::json::OStream &JOS, Container &&Strings) { }; } -static auto toJSONSorted(llvm::json::OStream &JOS, - const llvm::StringSet<> &Set) { - SmallVector<StringRef> Strings(Set.keys()); - llvm::sort(Strings); - return toJSONStrings(JOS, std::move(Strings)); -} - // Technically, we don't need to sort the dependency list to get determinism. // Leaving these be will simply preserve the import order. static auto toJSONSorted(llvm::json::OStream &JOS, std::vector<ModuleID> V) { @@ -472,7 +465,7 @@ class FullDeps { JOS.attributeArray("command-line", toJSONStrings(JOS, MD.getBuildArguments())); JOS.attribute("context-hash", StringRef(MD.ID.ContextHash)); - JOS.attributeArray("file-deps", toJSONSorted(JOS, MD.FileDeps)); + JOS.attributeArray("file-deps", toJSONStrings(JOS, MD.FileDeps)); JOS.attributeArray("link-libraries", toJSONSorted(JOS, MD.LinkLibraries)); JOS.attribute("name", StringRef(MD.ID.ModuleName)); >From 95b2328ee81b5a502167545037b8b7be18161068 Mon Sep 17 00:00:00 2001 From: Jan Svoboda <jan_svob...@apple.com> Date: Tue, 29 Oct 2024 08:57:34 -0700 Subject: [PATCH 3/3] [clang][deps] Add a TODO --- clang/tools/clang-scan-deps/ClangScanDeps.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp index 252eb114b227bd..4d97f6f1a76fbd 100644 --- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp +++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp @@ -465,6 +465,7 @@ class FullDeps { JOS.attributeArray("command-line", toJSONStrings(JOS, MD.getBuildArguments())); JOS.attribute("context-hash", StringRef(MD.ID.ContextHash)); + // TODO: Shuffle these to prevent tests from depending on the order. JOS.attributeArray("file-deps", toJSONStrings(JOS, MD.FileDeps)); JOS.attributeArray("link-libraries", toJSONSorted(JOS, MD.LinkLibraries)); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits