[clang] [Clang-CL][DXC] Expose -fdiagnostic-color= to clang-cl and clang-dxc (PR #120644)
Chris White via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 19 14:55:10 PST 2024
https://github.com/whiteio updated https://github.com/llvm/llvm-project/pull/120644
>From 770dec5aec1b879bafbc6c69b12a2e43c9497f7f Mon Sep 17 00:00:00 2001
From: Chris White <chriswhiteiodev at gmail.com>
Date: Thu, 19 Dec 2024 22:02:47 +0000
Subject: [PATCH] [Clang-CL][DXC] Expose -fdiagnostic-color= to clang-cl and
clang-dxc
---
clang/include/clang/Driver/Options.td | 2 +-
clang/test/Driver/cl-options.c | 9 +++++++++
clang/test/Driver/dxc_options.hlsl | 8 ++++++++
clang/test/Driver/unknown-arg-drivermodes.test | 4 ----
4 files changed, 18 insertions(+), 5 deletions(-)
create mode 100644 clang/test/Driver/dxc_options.hlsl
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 638f8c52053ec5..ad64626d960d43 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -1990,7 +1990,7 @@ def : Flag<["-"], "fno-diagnostics-color">, Group<f_Group>,
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
Alias<fno_color_diagnostics>;
def fdiagnostics_color_EQ : Joined<["-"], "fdiagnostics-color=">, Group<f_Group>,
- Visibility<[ClangOption, FlangOption]>,
+ Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
Values<"auto,always,never">,
HelpText<"When to use colors in diagnostics">;
def fansi_escape_codes : Flag<["-"], "fansi-escape-codes">, Group<f_Group>,
diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c
index 477e8489e74280..fe57a5232b2fdc 100644
--- a/clang/test/Driver/cl-options.c
+++ b/clang/test/Driver/cl-options.c
@@ -664,6 +664,15 @@
// RUN: not %clang_cl /guard:foo -### -- %s 2>&1 | FileCheck -check-prefix=CFGUARDINVALID %s
// CFGUARDINVALID: invalid value 'foo' in '/guard:'
+// The test doesn't run in a PTY, so "auto" defaults to off.
+// RUN: %clang_cl -fdiagnostics-color=auto -### -- %s 2>&1 | FileCheck -check-prefix=NO_COLOR %s
+
+// RUN: %clang_cl -fdiagnostics-color -### -- %s 2>&1 | FileCheck -check-prefix=COLOR %s
+// RUN: %clang_cl -fdiagnostics-color=always -### -- %s 2>&1 | FileCheck -check-prefix=COLOR %s
+// RUN: %clang_cl -fdiagnostics-color=never -### -- %s 2>&1 | FileCheck -check-prefix=NO_COLOR %s
+// COLOR: "-fcolor-diagnostics"
+// NO_COLOR-NOT: "-fcolor-diagnostics"
+
// Accept "core" clang options.
// (/Zs is for syntax-only, -Werror makes it fail hard on unknown options)
// RUN: %clang_cl \
diff --git a/clang/test/Driver/dxc_options.hlsl b/clang/test/Driver/dxc_options.hlsl
new file mode 100644
index 00000000000000..9bd4b61cdcf19d
--- /dev/null
+++ b/clang/test/Driver/dxc_options.hlsl
@@ -0,0 +1,8 @@
+// The test doesn't run in a PTY, so "auto" defaults to off.
+// RUN: %clang_dxc -Tlib_6_7 -fdiagnostics-color=auto -### -- %s 2>&1 | FileCheck -check-prefix=NO_COLOR %s
+
+// RUN: %clang_dxc -Tlib_6_7 -fdiagnostics-color -### %s 2>&1 | FileCheck -check-prefix=COLOR %s
+// RUN: %clang_dxc -Tlib_6_7 -fdiagnostics-color=always -### %s 2>&1 | FileCheck -check-prefix=COLOR %s
+// RUN: %clang_dxc -Tlib_6_7 -fdiagnostics-color=never -### %s 2>&1 | FileCheck -check-prefix=NO_COLOR %s
+// COLOR: "-fcolor-diagnostics"
+// NO_COLOR-NOT: "-fcolor-diagnostics"
\ No newline at end of file
diff --git a/clang/test/Driver/unknown-arg-drivermodes.test b/clang/test/Driver/unknown-arg-drivermodes.test
index a7ea73af345e03..0125d79b47afa1 100644
--- a/clang/test/Driver/unknown-arg-drivermodes.test
+++ b/clang/test/Driver/unknown-arg-drivermodes.test
@@ -1,6 +1,5 @@
// RUN: %clang_cl \
// RUN: --config \
-// RUN: -fdiagnostics-color=auto \
// RUN: -fno-record-command-line \
// RUN: -frecord-command-line \
// RUN: -nodefaultlibs \
@@ -15,7 +14,6 @@
// RUN: not %clang_dxc \
// RUN: --config \
-// RUN: -fdiagnostics-color=auto \
// RUN: -fno-record-command-line \
// RUN: -frecord-command-line \
// RUN: -nodefaultlibs \
@@ -30,7 +28,6 @@
// RUN: | FileCheck %s --check-prefix=DXC --implicit-check-not="error:"
// CL: warning: unknown argument ignored in clang-cl: '--config'
-// CL: warning: unknown argument ignored in clang-cl: '-fdiagnostics-color=auto'
// CL: warning: unknown argument ignored in clang-cl: '-fno-record-command-line'
// CL: warning: unknown argument ignored in clang-cl: '-frecord-command-line'
// CL: warning: unknown argument ignored in clang-cl: '-nodefaultlibs'
@@ -42,7 +39,6 @@
// CL: warning: unknown argument ignored in clang-cl: '-Xoffload-linker'
// DXC: error: unknown argument: '--config'
-// DXC: error: unknown argument: '-fdiagnostics-color=auto'
// DXC: error: unknown argument: '-fno-record-command-line'
// DXC: error: unknown argument: '-frecord-command-line'
// DXC: error: unknown argument: '-nodefaultlibs'
More information about the cfe-commits
mailing list