diff --git a/clang/test/ClangScanDeps/include-tree-with-pch.c b/clang/test/ClangScanDeps/include-tree-with-pch.c index 1c6d0e2791b7e..f056a13ed4b8d 100644 --- a/clang/test/ClangScanDeps/include-tree-with-pch.c +++ b/clang/test/ClangScanDeps/include-tree-with-pch.c @@ -5,33 +5,33 @@ // RUN: %clang -x c-header %t/prefix.h -target x86_64-apple-macos12 -o %t/prefix.pch -fdepscan=inline -fdepscan-include-tree -Xclang -fcas-path -Xclang %t/cas // RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-include-tree -cas-path %t/cas > %t/result.txt -// RUN: FileCheck %s -input-file %t/result.txt -DPREFIX=%/t +// RUN: cat %t/result.txt | %PathSanitizingFileCheck --sanitize PREFIX=%/t %s -// CHECK: {{.*}} - [[PREFIX]]/t.c +// CHECK: {{.*}} - PREFIX{{/|\\}}t.c // CHECK-NEXT: (PCH) -// CHECK-NEXT: [[PREFIX]]/t.c +// CHECK-NEXT: PREFIX{{/|\\}}t.c // CHECK-NEXT: 1:1 -// CHECK-NEXT: [[PREFIX]]/t.h +// CHECK-NEXT: PREFIX{{/|\\}}t.h // CHECK-NEXT: Files: -// CHECK-NEXT: [[PREFIX]]/t.c -// CHECK-NEXT: [[PREFIX]]/t.h -// CHECK-NEXT: [[PREFIX]]/prefix.h -// CHECK-NEXT: [[PREFIX]]/n1.h -// CHECK-NEXT: [[PREFIX]]/n2.h -// CHECK-NEXT: [[PREFIX]]/n3.h -// CHECK-NOT: [[PREFIX]] +// CHECK-NEXT: PREFIX{{/|\\}}t.c +// CHECK-NEXT: PREFIX{{/|\\}}t.h +// CHECK-NEXT: PREFIX{{/|\\}}prefix.h +// CHECK-NEXT: PREFIX{{/|\\}}n1.h +// CHECK-NEXT: PREFIX{{/|\\}}n2.h +// CHECK-NEXT: PREFIX{{/|\\}}n3.h +// CHECK-NOT: PREFIX // RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-include-tree-full -cas-path %t/cas > %t/deps.json // RUN: cat %t/result.txt > %t/full.txt // RUN: echo "FULL DEPS START" >> %t/full.txt -// RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' >> %t/full.txt +// RUN: cat %t/deps.json >> %t/full.txt -// RUN: FileCheck %s -DPREFIX=%/t -DCLANG=%clang -check-prefix=FULL -input-file %t/full.txt +// RUN: cat %t/full.txt | %PathSanitizingFileCheck --sanitize PREFIX=%/t --sanitize CLANG=%/clang --enable-yaml-compatibility -check-prefix=FULL %s // Capture the tree id from experimental-include-tree ; ensure that it matches // the result from experimental-full. -// FULL: [[TREE_ID:llvmcas://[[:xdigit:]]+]] - [[PREFIX]]/t.c +// FULL: [[TREE_ID:llvmcas://[[:xdigit:]]+]] - PREFIX{{/|\\}}t.c // FULL: FULL DEPS START // FULL-NEXT: { @@ -44,7 +44,7 @@ // FULL: "command-line": [ // FULL-NEXT: "-cc1" // FULL: "-fcas-path" -// FULL-NEXT: "[[PREFIX]]/cas" +// FULL-NEXT: "PREFIX{{/|\\\\}}cas" // FULL: "-disable-free" // FULL: "-fcas-include-tree" // FULL-NEXT: "[[TREE_ID]]" @@ -57,13 +57,13 @@ // FULL-NEXT: "t.c" // FULL-NOT: "t.c" // FULL: ] -// FULL: "executable": "[[CLANG]]" +// FULL: "executable": "CLANG" // FULL: "file-deps": [ -// FULL-NEXT: "[[PREFIX]]/t.c" -// FULL-NEXT: "[[PREFIX]]/t.h" -// FULL-NEXT: "[[PREFIX]]/prefix.pch" +// FULL-NEXT: "PREFIX{{/|\\\\}}t.c" +// FULL-NEXT: "PREFIX{{/|\\\\}}t.h" +// FULL-NEXT: "PREFIX{{/|\\\\}}prefix.pch" // FULL-NEXT: ] -// FULL: "input-file": "[[PREFIX]]/t.c" +// FULL: "input-file": "PREFIX{{/|\\\\}}t.c" // FULL: } // FULL: ] // FULL: } diff --git a/clang/tools/driver/cc1depscan_main.cpp b/clang/tools/driver/cc1depscan_main.cpp index 0e093d299c0a0..b7143e5fb5480 100644 --- a/clang/tools/driver/cc1depscan_main.cpp +++ b/clang/tools/driver/cc1depscan_main.cpp @@ -59,6 +59,7 @@ #if LLVM_ON_UNIX #include // FIXME: Unix-only. Not portable. #include // FIXME: Unix-only. Not portable. +#endif // LLVM_ON_UNIX #ifdef CLANG_HAVE_RLIMITS #include @@ -66,7 +67,9 @@ using namespace clang; using namespace llvm::opt; +#if LLVM_ON_UNIX using cc1depscand::DepscanSharing; +#endif // LLVM_ON_UNIX using llvm::Error; #define DEBUG_TYPE "cc1depscand" @@ -203,6 +206,7 @@ class SharedStream { }; } // namespace +#ifdef LLVM_ON_UNIX namespace { /// FIXME: Move to LLVMSupport; probably llvm/Support/Process.h. /// @@ -354,6 +358,7 @@ makeDepscanDaemonPath(StringRef Mode, const DepscanSharing &Sharing) { return std::nullopt; } +#endif // LLVM_ON_UNIX static int scanAndUpdateCC1Inline(const char *Exec, ArrayRef InputArgs, @@ -371,6 +376,7 @@ static Expected scanAndUpdateCC1InlineWithTool( SmallVectorImpl &OutputArgs, llvm::cas::ObjectStore &DB, llvm::function_ref SaveArg); +#ifdef LLVM_ON_UNIX static int scanAndUpdateCC1UsingDaemon( const char *Exec, ArrayRef OldArgs, StringRef WorkingDirectory, SmallVectorImpl &NewArgs, @@ -432,6 +438,7 @@ static int scanAndUpdateCC1UsingDaemon( return 0; } +#endif // LLVM_ON_UNIX // FIXME: This is a copy of Command::writeResponseFile. Command is too deeply // tied with clang::Driver to use directly. @@ -480,6 +487,7 @@ static int scanAndUpdateCC1(const char *Exec, ArrayRef OldArgs, } // Collect these before returning to ensure they're claimed. +#ifdef LLVM_ON_UNIX DepscanSharing Sharing; if (Arg *A = Args.getLastArg(options::OPT_fdepscan_share_stop_EQ)) Sharing.Stop = A->getValue(); @@ -515,9 +523,11 @@ static int scanAndUpdateCC1(const char *Exec, ArrayRef OldArgs, } } +#endif // LLVM_ON_UNIX bool ProduceIncludeTree = Args.hasArg(options::OPT_fdepscan_include_tree); auto SaveArg = [&Args](const Twine &T) { return Args.MakeArgString(T); }; +#ifdef LLVM_ON_UNIX CompilerInvocation::GenerateCASArgs(CASOpts, Sharing.CASArgs, SaveArg); if (ProduceIncludeTree) Sharing.CASArgs.push_back("-fdepscan-include-tree"); @@ -526,6 +536,7 @@ static int scanAndUpdateCC1(const char *Exec, ArrayRef OldArgs, return scanAndUpdateCC1UsingDaemon(Exec, OldArgs, WorkingDirectory, NewArgs, *DaemonPath, Sharing, Diag, SaveArg, CASOpts, RootID); +#endif // LLVM_ON_UNIX return scanAndUpdateCC1Inline(Exec, OldArgs, WorkingDirectory, NewArgs, ProduceIncludeTree, SaveArg, CASOpts, Diag, @@ -626,6 +637,7 @@ int cc1depscan_main(ArrayRef Argv, const char *Argv0, return 0; } +#ifdef LLVM_ON_UNIX namespace { struct ScanServer { const char *Argv0 = nullptr; @@ -1084,6 +1096,7 @@ int ScanServer::listen() { return 0; } +#endif // LLVM_ON_UNIX static Expected scanAndUpdateCC1InlineWithTool( tooling::dependencies::DependencyScanningTool &Tool, @@ -1156,4 +1169,3 @@ scanAndUpdateCC1Inline(const char *Exec, ArrayRef InputArgs, return DiagsConsumer->getNumErrors() != 0; } -#endif /* LLVM_ON_UNIX */ diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp index a83ee53a9ca2d..20db5b5022378 100644 --- a/clang/tools/driver/driver.cpp +++ b/clang/tools/driver/driver.cpp @@ -92,9 +92,9 @@ extern int cc1_main(ArrayRef Argv, const char *Argv0, #if LLVM_ON_UNIX extern int cc1depscand_main(ArrayRef Argv, const char *Argv0, void *MainAddr); +#endif /* LLVM_ON_UNIX */ extern int cc1depscan_main(ArrayRef Argv, const char *Argv0, void *MainAddr); -#endif /* LLVM_ON_UNIX */ extern int cc1as_main(ArrayRef Argv, const char *Argv0, void *MainAddr); extern int cc1gen_reproducer_main(ArrayRef Argv, @@ -252,10 +252,10 @@ static int ExecuteCC1Tool(SmallVectorImpl &ArgV, if (Tool == "-cc1depscand") return cc1depscand_main(ArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP); +#endif /* LLVM_ON_UNIX */ if (Tool == "-cc1depscan") return cc1depscan_main(ArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP); -#endif /* LLVM_ON_UNIX */ if (Tool == "-cc1as") return cc1as_main(ArrayRef(ArgV).slice(2), ArgV[0], GetExecutablePathVP); if (Tool == "-cc1gen-reproducer")