https://github.com/whiteio updated 
https://github.com/llvm/llvm-project/pull/120644

>From 2d6d43abf0dfaa64a5cdd7bff3a3ecbef01635c2 Mon Sep 17 00:00:00 2001
From: Chris White <chriswhiteio...@gmail.com>
Date: Thu, 19 Dec 2024 22:02:47 +0000
Subject: [PATCH 1/2] [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 9edf308cc685ea..9e81c39f6869bd 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'

>From 7756201f0e086e03f6e1b58da06796dbea9cb5f0 Mon Sep 17 00:00:00 2001
From: Chris White <chriswhiteio...@gmail.com>
Date: Fri, 20 Dec 2024 20:40:09 +0000
Subject: [PATCH 2/2] Address PR comments

---
 clang/docs/ReleaseNotes.rst        |  3 +++
 clang/test/Driver/cl-options.c     | 10 +---------
 clang/test/Driver/dxc_options.hlsl | 14 +++++++-------
 3 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index d9d016b30f93d6..3560efaebd2a0f 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -445,6 +445,9 @@ New Compiler Flags
 - The ``-Warray-compare-cxx26`` warning has been added to warn about array 
comparison
   starting from C++26, this warning is enabled as an error by default.
 
+- clang-cl and clang-dxc now support 
``-fdiagnostics-color=[auto|never|always]``
+  in addition to ``-f[no-]color-diagnostics``.
+
 Deprecated Compiler Flags
 -------------------------
 
diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c
index fe57a5232b2fdc..c975727839c0bf 100644
--- a/clang/test/Driver/cl-options.c
+++ b/clang/test/Driver/cl-options.c
@@ -664,15 +664,6 @@
 // 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 \
@@ -689,6 +680,7 @@
 // RUN:     -fcoverage-mapping \
 // RUN:     -fno-coverage-mapping \
 // RUN:     -fdiagnostics-color \
+// RUN:     -fdiagnostics-color=auto \
 // RUN:     -fno-diagnostics-color \
 // RUN:     -fdebug-compilation-dir . \
 // RUN:     -fdebug-compilation-dir=. \
diff --git a/clang/test/Driver/dxc_options.hlsl 
b/clang/test/Driver/dxc_options.hlsl
index 9bd4b61cdcf19d..09fdba1c3dd5f4 100644
--- a/clang/test/Driver/dxc_options.hlsl
+++ b/clang/test/Driver/dxc_options.hlsl
@@ -1,8 +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 \
+// RUN: -fcolor-diagnostics \
+// RUN: -fno-color-diagnostics \
+// RUN: -fdiagnostics-color \
+// RUN: -fno-diagnostics-color \
+// RUN: -fdiagnostics-color=auto \
+// RUN: -Tlib_6_7 -Vd -fdriver-only -- %s 2>&1 |count 0
 
-// 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

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to