https://github.com/qiongsiwu updated https://github.com/llvm/llvm-project/pull/129809
>From 2037abd8cb44be6a70850225626d9fde4b8058f2 Mon Sep 17 00:00:00 2001 From: Qiongsi Wu <qiongsi...@apple.com> Date: Tue, 4 Mar 2025 16:48:20 -0800 Subject: [PATCH 1/2] Update ScanningOptimizations's default so CWD optimization is off. --- .../DependencyScanning/DependencyScanningService.h | 2 +- clang/test/ClangScanDeps/modules-context-hash-cwd.c | 10 +++++----- clang/test/ClangScanDeps/modules-debug-dir.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h index f002f8645d3f6..b22ba0b1c1dea 100644 --- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h +++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h @@ -67,7 +67,7 @@ enum class ScanningOptimizations { IgnoreCWD = (1 << 4), DSS_LAST_BITMASK_ENUM(IgnoreCWD), - Default = All + Default = All & (~IgnoreCWD) }; #undef DSS_LAST_BITMASK_ENUM diff --git a/clang/test/ClangScanDeps/modules-context-hash-cwd.c b/clang/test/ClangScanDeps/modules-context-hash-cwd.c index 459d2c90debe6..c609a7dcbc80e 100644 --- a/clang/test/ClangScanDeps/modules-context-hash-cwd.c +++ b/clang/test/ClangScanDeps/modules-context-hash-cwd.c @@ -9,14 +9,14 @@ // RUN: sed -e "s|DIR|%/t|g" %t/cdb3.json.in > %t/cdb3.json // RUN: sed -e "s|DIR|%/t|g" %t/cdb4.json.in > %t/cdb4.json // RUN: sed -e "s|DIR|%/t|g" %t/cdb5.json.in > %t/cdb5.json -// RUN: clang-scan-deps -compilation-database %t/cdb0.json -format experimental-full > %t/result0.json -// RUN: clang-scan-deps -compilation-database %t/cdb1.json -format experimental-full > %t/result1.json +// RUN: clang-scan-deps -compilation-database %t/cdb0.json -format experimental-full -optimize-args=all > %t/result0.json +// RUN: clang-scan-deps -compilation-database %t/cdb1.json -format experimental-full -optimize-args=all > %t/result1.json // It is not a typo to use cdb1.json for result2. We intend to use the same // compilation database, but different clang-scan-deps optimize-args options. // RUN: clang-scan-deps -compilation-database %t/cdb1.json -format experimental-full -optimize-args=header-search,system-warnings,vfs,canonicalize-macros > %t/result2.json -// RUN: clang-scan-deps -compilation-database %t/cdb3.json -format experimental-full > %t/result3.json -// RUN: clang-scan-deps -compilation-database %t/cdb4.json -format experimental-full > %t/result4.json -// RUN: clang-scan-deps -compilation-database %t/cdb5.json -format experimental-full > %t/result5.json +// RUN: clang-scan-deps -compilation-database %t/cdb3.json -format experimental-full -optimize-args=all > %t/result3.json +// RUN: clang-scan-deps -compilation-database %t/cdb4.json -format experimental-full -optimize-args=all > %t/result4.json +// RUN: clang-scan-deps -compilation-database %t/cdb5.json -format experimental-full -optimize-args=all > %t/result5.json // RUN: cat %t/result0.json %t/result1.json | FileCheck %s // RUN: cat %t/result0.json %t/result2.json | FileCheck %s -check-prefix=SKIPOPT // RUN: cat %t/result3.json %t/result4.json | FileCheck %s -check-prefix=RELPATH diff --git a/clang/test/ClangScanDeps/modules-debug-dir.c b/clang/test/ClangScanDeps/modules-debug-dir.c index fadec1ad52e35..c4fb4982ed791 100644 --- a/clang/test/ClangScanDeps/modules-debug-dir.c +++ b/clang/test/ClangScanDeps/modules-debug-dir.c @@ -4,7 +4,7 @@ // RUN: split-file %s %t // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json // RUN: clang-scan-deps -compilation-database %t/cdb.json -format \ -// RUN: experimental-full > %t/result.json +// RUN: experimental-full -optimize-args=all > %t/result.json // RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck %s //--- cdb.json.in >From 41f7ca51ebf204f419e67a2b1e921a61cf1b9547 Mon Sep 17 00:00:00 2001 From: Qiongsi Wu <qiongsi...@apple.com> Date: Tue, 4 Mar 2025 18:59:36 -0800 Subject: [PATCH 2/2] Adding comments explaining the default behaviour. --- .../Tooling/DependencyScanning/DependencyScanningService.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h index b22ba0b1c1dea..816e122eb3003 100644 --- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h +++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h @@ -67,6 +67,10 @@ enum class ScanningOptimizations { IgnoreCWD = (1 << 4), DSS_LAST_BITMASK_ENUM(IgnoreCWD), + + // The build system needs to be aware that the current working + // directory is ignored. Without a good way of notifying the build + // system, it is less risky to default to off. Default = All & (~IgnoreCWD) }; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits