Skip to content

Commit ef31141

Browse files
authored
[clang-cl][flang][dxc] Fix opts exposed to clang-cl/dxc by mistake (#118640)
When these options were enabled for flang the visibility was also extended to clang-cl and dxc. This was due to a misunderstanding of the default value for `Visibility`.
1 parent 31272e4 commit ef31141

File tree

2 files changed

+67
-12
lines changed

2 files changed

+67
-12
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,11 +1056,11 @@ def z : Separate<["-"], "z">, Flags<[LinkerInput]>,
10561056
def offload_link : Flag<["--"], "offload-link">, Group<Link_Group>,
10571057
HelpText<"Use the new offloading linker to perform the link job.">;
10581058
def Xlinker : Separate<["-"], "Xlinker">, Flags<[LinkerInput, RenderAsInput]>,
1059-
Visibility<[ClangOption, CLOption, FlangOption, DXCOption]>,
1059+
Visibility<[ClangOption, CLOption, FlangOption]>,
10601060
HelpText<"Pass <arg> to the linker">, MetaVarName<"<arg>">,
10611061
Group<Link_Group>;
10621062
def Xoffload_linker : JoinedAndSeparate<["-"], "Xoffload-linker">,
1063-
Visibility<[ClangOption, CLOption, FlangOption, DXCOption]>,
1063+
Visibility<[ClangOption, FlangOption]>,
10641064
HelpText<"Pass <arg> to the offload linkers or the ones identified by -<triple>">,
10651065
MetaVarName<"<triple> <arg>">, Group<Link_Group>;
10661066
def Xpreprocessor : Separate<["-"], "Xpreprocessor">, Group<Preprocessor_Group>,
@@ -1176,7 +1176,7 @@ def compatibility__version : JoinedOrSeparate<["-"], "compatibility_version">;
11761176
def config : Joined<["--"], "config=">, Flags<[NoXarchOption]>,
11771177
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>, MetaVarName<"<file>">,
11781178
HelpText<"Specify configuration file">;
1179-
def : Separate<["--"], "config">, Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>, Alias<config>;
1179+
def : Separate<["--"], "config">, Visibility<[ClangOption, FlangOption]>, Alias<config>;
11801180
def no_default_config : Flag<["--"], "no-default-config">,
11811181
Flags<[NoXarchOption]>, Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
11821182
HelpText<"Disable loading default configuration files">;
@@ -1990,7 +1990,7 @@ def : Flag<["-"], "fno-diagnostics-color">, Group<f_Group>,
19901990
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
19911991
Alias<fno_color_diagnostics>;
19921992
def fdiagnostics_color_EQ : Joined<["-"], "fdiagnostics-color=">, Group<f_Group>,
1993-
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
1993+
Visibility<[ClangOption, FlangOption]>,
19941994
Values<"auto,always,never">,
19951995
HelpText<"When to use colors in diagnostics">;
19961996
def fansi_escape_codes : Flag<["-"], "fansi-escape-codes">, Group<f_Group>,
@@ -2016,10 +2016,10 @@ argument are escaped with backslashes. This format differs from the format of
20162016
the equivalent section produced by GCC with the -frecord-gcc-switches flag.
20172017
This option is currently only supported on ELF targets.}]>,
20182018
Group<f_Group>,
2019-
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>;
2019+
Visibility<[ClangOption, FlangOption]>;
20202020
def fno_record_command_line : Flag<["-"], "fno-record-command-line">,
20212021
Group<f_Group>,
2022-
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>;
2022+
Visibility<[ClangOption, FlangOption]>;
20232023
def : Flag<["-"], "frecord-gcc-switches">, Alias<frecord_command_line>;
20242024
def : Flag<["-"], "fno-record-gcc-switches">, Alias<fno_record_command_line>;
20252025
def fcommon : Flag<["-"], "fcommon">, Group<f_Group>,
@@ -5648,7 +5648,7 @@ def gpulibc : Flag<["-"], "gpulibc">, Visibility<[ClangOption, CC1Option, FlangO
56485648
HelpText<"Link the LLVM C Library for GPUs">;
56495649
def nogpulibc : Flag<["-"], "nogpulibc">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
56505650
def nodefaultlibs : Flag<["-"], "nodefaultlibs">,
5651-
Visibility<[ClangOption, FlangOption, CLOption, DXCOption]>;
5651+
Visibility<[ClangOption, FlangOption]>;
56525652
def nodriverkitlib : Flag<["-"], "nodriverkitlib">;
56535653
def nofixprebinding : Flag<["-"], "nofixprebinding">;
56545654
def nolibc : Flag<["-"], "nolibc">;
@@ -5670,10 +5670,10 @@ def nostdincxx : Flag<["-"], "nostdinc++">, Visibility<[ClangOption, CC1Option]>
56705670
HelpText<"Disable standard #include directories for the C++ standard library">,
56715671
MarshallingInfoNegativeFlag<HeaderSearchOpts<"UseStandardCXXIncludes">>;
56725672
def nostdlib : Flag<["-"], "nostdlib">,
5673-
Visibility<[ClangOption, CLOption, FlangOption, DXCOption]>,
5673+
Visibility<[ClangOption, FlangOption]>,
56745674
Group<Link_Group>;
56755675
def stdlib : Flag<["-"], "stdlib">,
5676-
Visibility<[ClangOption, CLOption, FlangOption, DXCOption]>,
5676+
Visibility<[ClangOption, FlangOption]>,
56775677
Group<Link_Group>;
56785678
def nostdlibxx : Flag<["-"], "nostdlib++">;
56795679
def object : Flag<["-"], "object">;
@@ -5787,7 +5787,7 @@ def resource_dir_EQ : Joined<["-"], "resource-dir=">, Flags<[NoXarchOption]>,
57875787
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
57885788
Alias<resource_dir>;
57895789
def rpath : Separate<["-"], "rpath">, Flags<[LinkerInput]>, Group<Link_Group>,
5790-
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>;
5790+
Visibility<[ClangOption, FlangOption]>;
57915791
def rtlib_EQ : Joined<["-", "--"], "rtlib=">, Visibility<[ClangOption, CLOption, FlangOption]>,
57925792
HelpText<"Compiler runtime library to use">;
57935793
def frtlib_add_rpath: Flag<["-"], "frtlib-add-rpath">, Flags<[NoArgumentUnused]>,
@@ -5851,7 +5851,7 @@ def segs__read__write__addr : Separate<["-"], "segs_read_write_addr">;
58515851
def segs__read__ : Joined<["-"], "segs_read_">;
58525852
def shared_libgcc : Flag<["-"], "shared-libgcc">;
58535853
def shared : Flag<["-", "--"], "shared">, Group<Link_Group>,
5854-
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>;
5854+
Visibility<[ClangOption, FlangOption]>;
58555855
def single__module : Flag<["-"], "single_module">;
58565856
def specs_EQ : Joined<["-", "--"], "specs=">, Group<Link_Group>;
58575857
def specs : Separate<["-", "--"], "specs">, Flags<[Unsupported]>;
@@ -5861,7 +5861,7 @@ def start_no_unused_arguments : Flag<["--"], "start-no-unused-arguments">,
58615861
def static_libgcc : Flag<["-"], "static-libgcc">;
58625862
def static_libstdcxx : Flag<["-"], "static-libstdc++">;
58635863
def static : Flag<["-", "--"], "static">, Group<Link_Group>,
5864-
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
5864+
Visibility<[ClangOption, FlangOption]>,
58655865
Flags<[NoArgumentUnused]>;
58665866
def std_default_EQ : Joined<["-"], "std-default=">;
58675867
def std_EQ : Joined<["-", "--"], "std=">,
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// RUN: %clang_cl \
2+
// RUN: --config \
3+
// RUN: -fdiagnostics-color=auto \
4+
// RUN: -fno-record-command-line \
5+
// RUN: -frecord-command-line \
6+
// RUN: -nodefaultlibs \
7+
// RUN: -nostdlib \
8+
// RUN: -rpath \
9+
// RUN: -shared \
10+
// RUN: -static \
11+
// RUN: -stdlib \
12+
// RUN: -Xoffload-linker \
13+
// RUN: -### -x c++ -c - < /dev/null 2>&1 \
14+
// RUN: | FileCheck %s --check-prefix=CL --implicit-check-not="warning:"
15+
16+
// RUN: not %clang_dxc \
17+
// RUN: --config \
18+
// RUN: -fdiagnostics-color=auto \
19+
// RUN: -fno-record-command-line \
20+
// RUN: -frecord-command-line \
21+
// RUN: -nodefaultlibs \
22+
// RUN: -nostdlib \
23+
// RUN: -rpath \
24+
// RUN: -shared \
25+
// RUN: -static \
26+
// RUN: -stdlib \
27+
// RUN: -Xlinker \
28+
// RUN: -Xoffload-linker \
29+
// RUN: -### -T lib_6_3 -Vd - < /dev/null 2>&1 \
30+
// RUN: | FileCheck %s --check-prefix=DXC --implicit-check-not="error:"
31+
32+
// CL: warning: unknown argument ignored in clang-cl: '--config'
33+
// CL: warning: unknown argument ignored in clang-cl: '-fdiagnostics-color=auto'
34+
// CL: warning: unknown argument ignored in clang-cl: '-fno-record-command-line'
35+
// CL: warning: unknown argument ignored in clang-cl: '-frecord-command-line'
36+
// CL: warning: unknown argument ignored in clang-cl: '-nodefaultlibs'
37+
// CL: warning: unknown argument ignored in clang-cl: '-nostdlib'
38+
// CL: warning: unknown argument ignored in clang-cl: '-rpath'
39+
// CL: warning: unknown argument ignored in clang-cl: '-shared'
40+
// CL: warning: unknown argument ignored in clang-cl: '-static'
41+
// CL: warning: unknown argument ignored in clang-cl: '-stdlib'
42+
// CL: warning: unknown argument ignored in clang-cl: '-Xoffload-linker'
43+
44+
// DXC: error: unknown argument: '--config'
45+
// DXC: error: unknown argument: '-fdiagnostics-color=auto'
46+
// DXC: error: unknown argument: '-fno-record-command-line'
47+
// DXC: error: unknown argument: '-frecord-command-line'
48+
// DXC: error: unknown argument: '-nodefaultlibs'
49+
// DXC: error: unknown argument: '-nostdlib'
50+
// DXC: error: unknown argument: '-rpath'
51+
// DXC: error: unknown argument: '-shared'
52+
// DXC: error: unknown argument: '-static'
53+
// DXC: error: unknown argument: '-stdlib'
54+
// DXC: error: unknown argument: '-Xlinker'
55+
// DXC: error: unknown argument: '-Xoffload-linker'

0 commit comments

Comments
 (0)