Skip to content

Commit 83a0699

Browse files
committed
[flang][driver] Update the visibility of Clang options in Flang
Prior to D157151, there was no mechanism to "disable" unsupported Clang options in Flang. While the "help" text (`flang-new -help`) was indeed configured not to display such options, the Flang compiler driver would happily consume such options and only issue a warning when there was no logic to parse it: ``` flang-new -fno-experimental-relative-c++-abi-vtables file.f90 flang-new: warning: argument unused during compilation: '-fno-experimental-relative-c++-abi-vtables' ``` D157151 introduces visibility flags. In particular, all Clang options gain a visibility flag (`ClangOption`) that can be excluded when in Flang driver mode. This way the above invocation will lead to: ``` flang-new: error: unknown argument '-fno-experimental-relative-c++-abi-vtables'; did you mean '-Xclang -fno-experimental-relative-c++-abi-vtables'? ``` This won't work unless all options/flags supported by Flang have their visibility flags updated accordingly, hence the changes in Options.td. Moving forward, this change will allow Flang better control over the supported options. Depends on D157151 Differential Revision: https://reviews.llvm.org/D157837
1 parent 4edde41 commit 83a0699

File tree

7 files changed

+313
-262
lines changed

7 files changed

+313
-262
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 56 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -615,8 +615,8 @@ class InternalDriverOpt : Group<internal_driver_Group>,
615615
Flags<[NoXarchOption, HelpHidden]>;
616616
def driver_mode : Joined<["--"], "driver-mode=">, Group<internal_driver_Group>,
617617
Flags<[NoXarchOption, HelpHidden]>,
618-
Visibility<[ClangOption, CLOption, DXCOption]>,
619-
HelpText<"Set the driver mode to either 'gcc', 'g++', 'cpp', or 'cl'">;
618+
Visibility<[ClangOption, FlangOption, CLOption, DXCOption]>,
619+
HelpText<"Set the driver mode to either 'gcc', 'g++', 'cpp', 'cl' or 'flang'">;
620620
def rsp_quoting : Joined<["--"], "rsp-quoting=">, Group<internal_driver_Group>,
621621
Flags<[NoXarchOption, HelpHidden]>,
622622
Visibility<[ClangOption, CLOption, DXCOption]>,
@@ -630,7 +630,9 @@ class InternalDebugOpt : Group<internal_debug_Group>,
630630
Visibility<[ClangOption, CLOption, DXCOption]>;
631631
def ccc_install_dir : Separate<["-"], "ccc-install-dir">, InternalDebugOpt,
632632
HelpText<"Simulate installation in the given directory">;
633-
def ccc_print_phases : Flag<["-"], "ccc-print-phases">, InternalDebugOpt,
633+
def ccc_print_phases : Flag<["-"], "ccc-print-phases">,
634+
Flags<[NoXarchOption, HelpHidden]>, Visibility<[ClangOption, CLOption, DXCOption,
635+
FlangOption]>,
634636
HelpText<"Dump list of actions to perform">;
635637
def ccc_print_bindings : Flag<["-"], "ccc-print-bindings">, InternalDebugOpt,
636638
HelpText<"Show bindings of tools to actions">;
@@ -849,15 +851,15 @@ def MV : Flag<["-"], "MV">, Group<M_Group>, Visibility<[ClangOption, CC1Option]>
849851
Normalizer<"makeFlagToValueNormalizer(DependencyOutputFormat::NMake)">;
850852
def Mach : Flag<["-"], "Mach">, Group<Link_Group>;
851853
def O0 : Flag<["-"], "O0">, Group<O_Group>, Flags<[HelpHidden]>,
852-
Visibility<[ClangOption, CC1Option, FC1Option]>;
854+
Visibility<[ClangOption, CC1Option, FC1Option, FlangOption]>;
853855
def O4 : Flag<["-"], "O4">, Group<O_Group>, Flags<[HelpHidden]>,
854-
Visibility<[ClangOption, CC1Option, FC1Option]>;
856+
Visibility<[ClangOption, CC1Option, FC1Option, FlangOption]>;
855857
def ObjCXX : Flag<["-"], "ObjC++">, Flags<[NoXarchOption]>,
856858
HelpText<"Treat source input files as Objective-C++ inputs">;
857859
def ObjC : Flag<["-"], "ObjC">, Flags<[NoXarchOption]>,
858860
HelpText<"Treat source input files as Objective-C inputs">;
859861
def O : Joined<["-"], "O">, Group<O_Group>,
860-
Visibility<[ClangOption, CC1Option, FC1Option]>;
862+
Visibility<[ClangOption, CC1Option, FC1Option, FlangOption]>;
861863
def O_flag : Flag<["-"], "O">, Visibility<[ClangOption, CC1Option, FC1Option]>,
862864
Alias<O>, AliasArgs<["1"]>;
863865
def Ofast : Joined<["-"], "Ofast">, Group<O_Group>,
@@ -893,7 +895,7 @@ def Wa_COMMA : CommaJoined<["-"], "Wa,">,
893895
HelpText<"Pass the comma separated arguments in <arg> to the assembler">,
894896
MetaVarName<"<arg>">;
895897
def Wall : Flag<["-"], "Wall">, Group<W_Group>, Flags<[HelpHidden]>,
896-
Visibility<[ClangOption, CC1Option]>;
898+
Visibility<[ClangOption, CC1Option, FlangOption]>;
897899
def WCL4 : Flag<["-"], "WCL4">, Group<W_Group>, Flags<[HelpHidden]>,
898900
Visibility<[ClangOption, CC1Option]>;
899901
def Wsystem_headers : Flag<["-"], "Wsystem-headers">, Group<W_Group>,
@@ -1095,12 +1097,14 @@ defm convergent_functions : BoolFOption<"convergent-functions",
10951097
// Common offloading options
10961098
let Group = offload_Group in {
10971099
def offload_arch_EQ : Joined<["--"], "offload-arch=">, Flags<[NoXarchOption]>,
1100+
Visibility<[ClangOption, FlangOption]>,
10981101
HelpText<"Specify an offloading device architecture for CUDA, HIP, or OpenMP. (e.g. sm_35). "
10991102
"If 'native' is used the compiler will detect locally installed architectures. "
11001103
"For HIP offloading, the device architecture can be followed by target ID features "
11011104
"delimited by a colon (e.g. gfx908:xnack+:sramecc-). May be specified more than once.">;
11021105
def no_offload_arch_EQ : Joined<["--"], "no-offload-arch=">,
11031106
Flags<[NoXarchOption]>,
1107+
Visibility<[ClangOption, FlangOption]>,
11041108
HelpText<"Remove CUDA/HIP offloading device architecture (e.g. sm_35, gfx906) from the list of devices to compile for. "
11051109
"'all' resets the list to its default value.">;
11061110

@@ -1999,7 +2003,7 @@ defm fast_math : BoolFOption<"fast-math",
19992003
PosFlag<SetTrue, [], [ClangOption, CC1Option, FC1Option, FlangOption],
20002004
"Allow aggressive, lossy floating-point optimizations",
20012005
[cl_fast_relaxed_math.KeyPath]>,
2002-
NegFlag<SetFalse>>;
2006+
NegFlag<SetFalse, [], [ClangOption, CC1Option, FC1Option, FlangOption]>>;
20032007
defm math_errno : BoolFOption<"math-errno",
20042008
LangOpts<"MathErrno">, DefaultFalse,
20052009
PosFlag<SetTrue, [], [ClangOption, CC1Option],
@@ -2356,8 +2360,8 @@ def funsafe_math_optimizations : Flag<["-"], "funsafe-math-optimizations">,
23562360
ImpliedByAnyOf<[cl_unsafe_math_optimizations.KeyPath, ffast_math.KeyPath]>;
23572361
def fno_unsafe_math_optimizations : Flag<["-"], "fno-unsafe-math-optimizations">,
23582362
Group<f_Group>;
2359-
def fassociative_math : Flag<["-"], "fassociative-math">, Group<f_Group>;
2360-
def fno_associative_math : Flag<["-"], "fno-associative-math">, Group<f_Group>;
2363+
def fassociative_math : Flag<["-"], "fassociative-math">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
2364+
def fno_associative_math : Flag<["-"], "fno-associative-math">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
23612365
defm reciprocal_math : BoolFOption<"reciprocal-math",
23622366
LangOpts<"AllowRecip">, DefaultFalse,
23632367
PosFlag<SetTrue, [], [ClangOption, CC1Option, FC1Option, FlangOption],
@@ -2385,14 +2389,16 @@ defm signed_zeros : BoolFOption<"signed-zeros",
23852389
[cl_no_signed_zeros.KeyPath, funsafe_math_optimizations.KeyPath]>,
23862390
PosFlag<SetFalse>>;
23872391
def fhonor_nans : Flag<["-"], "fhonor-nans">, Group<f_Group>,
2392+
Visibility<[ClangOption, FlangOption]>,
23882393
HelpText<"Specify that floating-point optimizations are not allowed that "
23892394
"assume arguments and results are not NANs.">;
2390-
def fno_honor_nans : Flag<["-"], "fno-honor-nans">, Group<f_Group>;
2395+
def fno_honor_nans : Flag<["-"], "fno-honor-nans">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
23912396
def fhonor_infinities : Flag<["-"], "fhonor-infinities">,
2392-
Group<f_Group>,
2397+
Group<f_Group>, Visibility<[ClangOption, FlangOption]>,
23932398
HelpText<"Specify that floating-point optimizations are not allowed that "
23942399
"assume arguments and results are not +-inf.">;
2395-
def fno_honor_infinities : Flag<["-"], "fno-honor-infinities">, Group<f_Group>;
2400+
def fno_honor_infinities : Flag<["-"], "fno-honor-infinities">,
2401+
Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
23962402
// This option was originally misspelt "infinites" [sic].
23972403
def : Flag<["-"], "fhonor-infinites">, Alias<fhonor_infinities>;
23982404
def : Flag<["-"], "fno-honor-infinites">, Alias<fno_honor_infinities>;
@@ -2682,9 +2688,9 @@ def flto_EQ : Joined<["-"], "flto=">,
26822688
Visibility<[ClangOption, CLOption, CC1Option, FC1Option, FlangOption]>,
26832689
Group<f_Group>,
26842690
HelpText<"Set LTO mode">, Values<"thin,full">;
2685-
def flto_EQ_jobserver : Flag<["-"], "flto=jobserver">, Group<f_Group>,
2691+
def flto_EQ_jobserver : Flag<["-"], "flto=jobserver">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>,
26862692
Alias<flto_EQ>, AliasArgs<["full"]>, HelpText<"Enable LTO in 'full' mode">;
2687-
def flto_EQ_auto : Flag<["-"], "flto=auto">, Group<f_Group>,
2693+
def flto_EQ_auto : Flag<["-"], "flto=auto">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>,
26882694
Alias<flto_EQ>, AliasArgs<["full"]>, HelpText<"Enable LTO in 'full' mode">;
26892695
def flto : Flag<["-"], "flto">,
26902696
Visibility<[ClangOption, CLOption, CC1Option, FC1Option, FlangOption]>,
@@ -2696,7 +2702,7 @@ defm unified_lto : BoolFOption<"unified-lto",
26962702
NegFlag<SetFalse, [], [ClangOption], "Use distinct LTO pipelines">,
26972703
BothFlags<[], [ClangOption, CC1Option], "">>;
26982704
def fno_lto : Flag<["-"], "fno-lto">,
2699-
Visibility<[ClangOption, CLOption, CC1Option]>, Group<f_Group>,
2705+
Visibility<[ClangOption, CLOption, DXCOption, CC1Option, FlangOption]>, Group<f_Group>,
27002706
HelpText<"Disable LTO mode (default)">;
27012707
def foffload_lto_EQ : Joined<["-"], "foffload-lto=">,
27022708
Visibility<[ClangOption, CLOption]>, Group<f_Group>,
@@ -3207,7 +3213,7 @@ def fopenmp_use_tls : Flag<["-"], "fopenmp-use-tls">, Group<f_Group>,
32073213
def fnoopenmp_use_tls : Flag<["-"], "fnoopenmp-use-tls">, Group<f_Group>,
32083214
Flags<[NoArgumentUnused, HelpHidden]>, Visibility<[ClangOption, CC1Option]>;
32093215
def fopenmp_targets_EQ : CommaJoined<["-"], "fopenmp-targets=">,
3210-
Flags<[NoXarchOption]>, Visibility<[ClangOption, CC1Option]>,
3216+
Flags<[NoXarchOption]>, Visibility<[ClangOption, CC1Option, FlangOption]>,
32113217
HelpText<"Specify comma-separated list of triples OpenMP offloading targets to be supported">;
32123218
def fopenmp_relocatable_target : Flag<["-"], "fopenmp-relocatable-target">,
32133219
Group<f_Group>, Flags<[NoArgumentUnused, HelpHidden]>,
@@ -3239,7 +3245,7 @@ def fopenmp_cuda_teams_reduction_recs_num_EQ : Joined<["-"], "fopenmp-cuda-teams
32393245
//===----------------------------------------------------------------------===//
32403246

32413247
let Flags = [NoArgumentUnused] in {
3242-
let Visibility = [ClangOption, CC1Option, FC1Option] in {
3248+
let Visibility = [ClangOption, CC1Option, FC1Option, FlangOption] in {
32433249
let Group = f_Group in {
32443250

32453251
def fopenmp_target_debug : Flag<["-"], "fopenmp-target-debug">,
@@ -3272,7 +3278,7 @@ def R_Joined : Joined<["-"], "R">, Group<R_Group>,
32723278
} // let Visibility = [ClangOption, CC1Option, FC1Option, FlangOption]
32733279

32743280
let Flags = [NoArgumentUnused, HelpHidden] in {
3275-
let Visibility = [ClangOption, CC1Option, FC1Option] in {
3281+
let Visibility = [ClangOption, CC1Option, FC1Option, FlangOption] in {
32763282
let Group = f_Group in {
32773283

32783284
def fopenmp_target_debug_EQ : Joined<["-"], "fopenmp-target-debug=">;
@@ -3363,8 +3369,8 @@ def fpcc_struct_return : Flag<["-"], "fpcc-struct-return">, Group<f_Group>,
33633369
def fpch_preprocess : Flag<["-"], "fpch-preprocess">, Group<f_Group>;
33643370
def fpic : Flag<["-"], "fpic">, Group<f_Group>;
33653371
def fno_pic : Flag<["-"], "fno-pic">, Group<f_Group>;
3366-
def fpie : Flag<["-"], "fpie">, Group<f_Group>;
3367-
def fno_pie : Flag<["-"], "fno-pie">, Group<f_Group>;
3372+
def fpie : Flag<["-"], "fpie">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
3373+
def fno_pie : Flag<["-"], "fno-pie">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
33683374
defm pic_data_is_text_relative : SimpleMFlag<"pic-data-is-text-relative",
33693375
"Assume", "Don't assume", " data segments are relative to text segment">;
33703376
def fdirect_access_external_data : Flag<["-"], "fdirect-access-external-data">, Group<f_Group>,
@@ -3928,13 +3934,13 @@ def gline_tables_only : Flag<["-"], "gline-tables-only">, Group<gN_Group>,
39283934
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
39293935
HelpText<"Emit debug line number tables only">;
39303936
def gline_directives_only : Flag<["-"], "gline-directives-only">, Group<gN_Group>,
3931-
Visibility<[ClangOption, CLOption, DXCOption]>,
3937+
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
39323938
HelpText<"Emit debug line info directives only">;
39333939
def gmlt : Flag<["-"], "gmlt">, Alias<gline_tables_only>;
3934-
def g0 : Flag<["-"], "g0">, Group<gN_Group>;
3935-
def g1 : Flag<["-"], "g1">, Group<gN_Group>, Alias<gline_tables_only>;
3936-
def g2 : Flag<["-"], "g2">, Group<gN_Group>;
3937-
def g3 : Flag<["-"], "g3">, Group<gN_Group>;
3940+
def g0 : Flag<["-"], "g0">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]>;
3941+
def g1 : Flag<["-"], "g1">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]>, Alias<gline_tables_only>;
3942+
def g2 : Flag<["-"], "g2">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]>;
3943+
def g3 : Flag<["-"], "g3">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]>;
39383944
def ggdb : Flag<["-"], "ggdb">, Group<gTune_Group>;
39393945
def ggdb0 : Flag<["-"], "ggdb0">, Group<ggdbN_Group>;
39403946
def ggdb1 : Flag<["-"], "ggdb1">, Group<ggdbN_Group>;
@@ -4217,7 +4223,7 @@ def mwatchos_simulator_version_min_EQ : Joined<["-"], "mwatchos-simulator-versio
42174223
def mwatchsimulator_version_min_EQ : Joined<["-"], "mwatchsimulator-version-min=">, Alias<mwatchos_simulator_version_min_EQ>;
42184224
} // let Flags = [TargetSpecific]
42194225
def march_EQ : Joined<["-"], "march=">, Group<m_Group>,
4220-
Flags<[TargetSpecific]>, Visibility<[ClangOption, CLOption]>,
4226+
Flags<[TargetSpecific]>, Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
42214227
HelpText<"For a list of available architectures for the target use '-mcpu=help'">;
42224228
def masm_EQ : Joined<["-"], "masm=">, Group<m_Group>, Flags<[NoXarchOption]>;
42234229
def inline_asm_EQ : Joined<["-"], "inline-asm=">, Group<m_Group>,
@@ -4246,8 +4252,6 @@ def mthreads : Joined<["-"], "mthreads">, Group<m_Group>;
42464252
def mguard_EQ : Joined<["-"], "mguard=">, Group<m_Group>,
42474253
HelpText<"Enable or disable Control Flow Guard checks and guard tables emission">,
42484254
Values<"none,cf,cf-nochecks">;
4249-
def mcpu_EQ : Joined<["-"], "mcpu=">, Group<m_Group>,
4250-
HelpText<"For a list of available CPUs for the target use '-mcpu=help'">;
42514255
def mmcu_EQ : Joined<["-"], "mmcu=">, Group<m_Group>;
42524256
def msim : Flag<["-"], "msim">, Group<m_Group>;
42534257
def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group<m_Group>;
@@ -5032,8 +5036,8 @@ def nodriverkitlib : Flag<["-"], "nodriverkitlib">;
50325036
def nofixprebinding : Flag<["-"], "nofixprebinding">;
50335037
def nolibc : Flag<["-"], "nolibc">;
50345038
def nomultidefs : Flag<["-"], "nomultidefs">;
5035-
def nopie : Flag<["-"], "nopie">;
5036-
def no_pie : Flag<["-"], "no-pie">, Alias<nopie>;
5039+
def nopie : Flag<["-"], "nopie">, Visibility<[ClangOption, FlangOption]>;
5040+
def no_pie : Flag<["-"], "no-pie">, Visibility<[ClangOption, FlangOption]>, Alias<nopie>;
50375041
def noprebind : Flag<["-"], "noprebind">;
50385042
def noprofilelib : Flag<["-"], "noprofilelib">;
50395043
def noseglinkedit : Flag<["-"], "noseglinkedit">;
@@ -5392,8 +5396,6 @@ def _for_linker_EQ : Joined<["--"], "for-linker=">, Alias<Xlinker>;
53925396
def _for_linker : Separate<["--"], "for-linker">, Alias<Xlinker>;
53935397
def _force_link_EQ : Joined<["--"], "force-link=">, Alias<u>;
53945398
def _force_link : Separate<["--"], "force-link">, Alias<u>;
5395-
def _help_hidden : Flag<["--"], "help-hidden">,
5396-
HelpText<"Display help for hidden options">;
53975399
def _imacros_EQ : Joined<["--"], "imacros=">, Alias<imacros>;
53985400
def _include_barrier : Flag<["--"], "include-barrier">, Alias<I_>;
53995401
def _include_directory_after_EQ : Joined<["--"], "include-directory-after=">, Alias<idirafter>;
@@ -5449,8 +5451,6 @@ def _version : Flag<["--"], "version">,
54495451
def _signed_char : Flag<["--"], "signed-char">, Alias<fsigned_char>;
54505452
def _std : Separate<["--"], "std">, Alias<std_EQ>;
54515453
def _stdlib : Separate<["--"], "stdlib">, Alias<stdlib_EQ>;
5452-
def _sysroot_EQ : Joined<["--"], "sysroot=">;
5453-
def _sysroot : Separate<["--"], "sysroot">, Alias<_sysroot_EQ>;
54545454
def _target_help : Flag<["--"], "target-help">;
54555455
def _trace_includes : Flag<["--"], "trace-includes">, Alias<H>;
54565456
def _undefine_macro_EQ : Joined<["--"], "undefine-macro=">, Alias<U>;
@@ -5463,6 +5463,24 @@ def _warn_ : Joined<["--"], "warn-">, Alias<W_Joined>;
54635463
def _write_dependencies : Flag<["--"], "write-dependencies">, Alias<MD>;
54645464
def _write_user_dependencies : Flag<["--"], "write-user-dependencies">, Alias<MMD>;
54655465

5466+
def _help_hidden : Flag<["--"], "help-hidden">,
5467+
Visibility<[ClangOption, FlangOption]>,
5468+
HelpText<"Display help for hidden options">;
5469+
def _sysroot_EQ : Joined<["--"], "sysroot=">, Visibility<[ClangOption, FlangOption]>;
5470+
def _sysroot : Separate<["--"], "sysroot">, Alias<_sysroot_EQ>;
5471+
5472+
//===----------------------------------------------------------------------===//
5473+
// Target Options (clang + flang-new)
5474+
//===----------------------------------------------------------------------===//
5475+
let Flags = [TargetSpecific] in {
5476+
let Visibility = [ClangOption, FlangOption] in {
5477+
5478+
def mcpu_EQ : Joined<["-"], "mcpu=">, Group<m_Group>,
5479+
HelpText<"For a list of available CPUs for the target use '-mcpu=help'">;
5480+
5481+
} // let Vis = [Default, FlangOption]
5482+
} // let Flags = [TargetSpecific]
5483+
54665484
// Hexagon feature flags.
54675485
let Flags = [TargetSpecific] in {
54685486
def mieee_rnd_near : Flag<["-"], "mieee-rnd-near">,
@@ -5810,7 +5828,7 @@ def mno_vzeroupper : Flag<["-"], "mno-vzeroupper">, Group<m_x86_Features_Group>;
58105828
// style of double-dash and equals-joined flags.
58115829
def target_legacy_spelling : Separate<["-"], "target">,
58125830
Alias<target>,
5813-
Visibility<[ClangOption, CLOption, DXCOption]>;
5831+
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>;
58145832

58155833
// Special internal option to handle -Xlinker --no-demangle.
58165834
def Z_Xlinker__no_demangle : Flag<["-"], "Z-Xlinker-no-demangle">,
@@ -5835,7 +5853,8 @@ multiclass BooleanFFlag<string name> {
58355853
}
58365854

58375855
multiclass FlangIgnoredDiagOpt<string name> {
5838-
def unsupported_warning_w#NAME : Flag<["-", "--"], "W"#name>, Group<flang_ignored_w_Group>;
5856+
def unsupported_warning_w#NAME : Flag<["-", "--"], "W"#name>,
5857+
Visibility<[FlangOption]>, Group<flang_ignored_w_Group>;
58395858
}
58405859

58415860
defm : BooleanFFlag<"keep-inline-functions">, Group<clang_ignored_gcc_optimization_f_Group>;

clang/lib/Driver/Driver.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6495,9 +6495,7 @@ Driver::getOptionVisibilityMask(bool UseDriverMode) const {
64956495
if (IsDXCMode())
64966496
return llvm::opt::Visibility(options::DXCOption);
64976497
if (IsFlangMode()) {
6498-
// TODO: Does flang really want *all* of the clang driver options?
6499-
// We probably need to annotate more specifically.
6500-
return llvm::opt::Visibility(options::ClangOption | options::FlangOption);
6498+
return llvm::opt::Visibility(options::FlangOption);
65016499
}
65026500
return llvm::opt::Visibility(options::ClangOption);
65036501
}

clang/test/Driver/flang/flang.f90

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
! CHECK-E-DAG: "-E"
2323
! CHECK-E-DAG: "-o" "-"
2424

25-
! RUN: %clang --driver-mode=flang -### -emit-ast %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-AST %s
26-
! CHECK-EMIT-AST-DAG: "-emit-ast"
27-
! CHECK-EMIT-AST-DAG: "-o" "{{[^"]*}}.ast"
28-
2925
! RUN: %clang --driver-mode=flang -### -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-SYNTAX-ONLY %s
3026
! CHECK-SYNTAX-ONLY-NOT: "-o"
3127
! CHECK-SYNTAX-ONLY-DAG: "-fsyntax-only"
@@ -42,7 +38,7 @@
4238
! CHECK-S-DAG: "-S"
4339
! CHECK-S-DAG: "-o" "{{[^"]*}}.s"
4440

45-
! RUN: %clang --driver-mode=flang -### -fintegrated-as %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s
41+
! RUN: %clang --driver-mode=flang -### %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s
4642
! CHECK-EMIT-OBJ-DAG: "-emit-obj"
4743
! CHECK-EMIT-OBJ-DAG: "-o" "{{[^"]*}}.o"
4844

clang/test/Driver/flang/flang_ucase.F90

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
! CHECK-E-DAG: "-E"
2323
! CHECK-E-DAG: "-o" "-"
2424

25-
! RUN: %clang --driver-mode=flang -### -emit-ast %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-AST %s
26-
! CHECK-EMIT-AST-DAG: "-emit-ast"
27-
! CHECK-EMIT-AST-DAG: "-o" "{{[^"]*}}.ast"
28-
2925
! RUN: %clang --driver-mode=flang -### -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-SYNTAX-ONLY %s
3026
! CHECK-SYNTAX-ONLY-NOT: "-o"
3127
! CHECK-SYNTAX-ONLY-DAG: "-fsyntax-only"
@@ -42,7 +38,7 @@
4238
! CHECK-S-DAG: "-S"
4339
! CHECK-S-DAG: "-o" "{{[^"]*}}.s"
4440

45-
! RUN: %clang --driver-mode=flang -### -fintegrated-as %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s
41+
! RUN: %clang --driver-mode=flang -### %s 2>&1 | FileCheck --check-prefixes=ALL,CHECK-EMIT-OBJ %s
4642
! CHECK-EMIT-OBJ-DAG: "-emit-obj"
4743
! CHECK-EMIT-OBJ-DAG: "-o" "{{[^"]*}}.o"
4844

0 commit comments

Comments
 (0)