diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4690,15 +4690,16 @@ //===----------------------------------------------------------------------===// // FLangOption + CoreOption + NoXarchOption //===----------------------------------------------------------------------===// -let Flags = [FlangOption, FlangOnlyOption, NoXarchOption, CoreOption] in { + def Xflang : Separate<["-"], "Xflang">, HelpText<"Pass to the flang compiler">, MetaVarName<"">, - Flags<[NoXarchOption, CoreOption]>, Group; -} + Flags<[FlangOption, FlangOnlyOption, NoXarchOption, CoreOption]>, + Group; //===----------------------------------------------------------------------===// // FlangOption and FC1 Options //===----------------------------------------------------------------------===// + let Flags = [FC1Option, FlangOption, FlangOnlyOption] in { def cpp : Flag<["-"], "cpp">, Group, @@ -4745,7 +4746,8 @@ def fno_automatic : Flag<["-"], "fno-automatic">, Group, HelpText<"Implies the SAVE attribute for non-automatic local objects in subprograms unless RECURSIVE">; -} + +} // let Flags = [FC1Option, FlangOption, FlangOnlyOption] def J : JoinedOrSeparate<["-"], "J">, Flags<[RenderJoined, FlangOption, FC1Option, FlangOnlyOption]>, @@ -4755,6 +4757,7 @@ //===----------------------------------------------------------------------===// // FC1 Options //===----------------------------------------------------------------------===// + let Flags = [FC1Option, FlangOnlyOption] in { def fget_definition : MultiArg<["-"], "fget-definition", 3>, @@ -4809,13 +4812,7 @@ HelpText<"Build the parse tree, then lower it to MLIR">; def emit_fir : Flag<["-"], "emit-fir">, Alias; -} - -//===----------------------------------------------------------------------===// -// CC1 Options -//===----------------------------------------------------------------------===// - -let Flags = [CC1Option, NoDriverOption] in { +} // let Flags = [FC1Option, FlangOnlyOption] //===----------------------------------------------------------------------===// // Target Options (cc1 + cc1as) @@ -4850,6 +4847,7 @@ //===----------------------------------------------------------------------===// // Target Options (cc1 + cc1as + fc1) //===----------------------------------------------------------------------===// + let Flags = [CC1Option, CC1AsOption, FC1Option, NoDriverOption] in { def triple : Separate<["-"], "triple">, @@ -4863,6 +4861,8 @@ // Target Options (other) //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def target_linker_version : Separate<["-"], "target-linker-version">, HelpText<"Target linker version">, MarshallingInfoString>; @@ -4877,10 +4877,14 @@ NegFlag>, ShouldParseIf; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Analyzer Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def analysis_UnoptimizedCFG : Flag<["-"], "unoptimized-cfg">, HelpText<"Generate unoptimized CFGs for all analyses">, MarshallingInfoFlag>; @@ -5031,15 +5035,20 @@ HelpText<"Emit analyzer results as errors rather than warnings">, MarshallingInfoFlag>; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Migrator Options //===----------------------------------------------------------------------===// + def migrator_no_nsalloc_error : Flag<["-"], "no-ns-alloc-error">, HelpText<"Do not error on use of NSAllocateCollectable/NSReallocateCollectable">, + Flags<[CC1Option, NoDriverOption]>, MarshallingInfoFlag>; def migrator_no_finalize_removal : Flag<["-"], "no-finalize-removal">, HelpText<"Do not remove finalize method in gc mode">, + Flags<[CC1Option, NoDriverOption]>, MarshallingInfoFlag>; //===----------------------------------------------------------------------===// @@ -5047,6 +5056,7 @@ //===----------------------------------------------------------------------===// let Flags = [CC1Option, CC1AsOption, NoDriverOption] in { + def debug_info_kind_EQ : Joined<["-"], "debug-info-kind=">; def debug_info_macro : Flag<["-"], "debug-info-macro">, HelpText<"Emit macro debug information">, @@ -5101,7 +5111,10 @@ HelpText<"Don't use constructor homing for debug info">; def fuse_ctor_homing: Flag<["-"], "fuse-ctor-homing">, HelpText<"Use constructor homing if we are using limited debug info already">; -} + +} // let Flags = [CC1Option, CC1AsOption, NoDriverOption] + +let Flags = [CC1Option, NoDriverOption] in { def disable_llvm_verifier : Flag<["-"], "disable-llvm-verifier">, HelpText<"Don't run the LLVM IR verifier pass">, @@ -5365,10 +5378,14 @@ def fdenormal_fp_math_f32_EQ : Joined<["-"], "fdenormal-fp-math-f32=">, Group; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Dependency Output Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def sys_header_deps : Flag<["-"], "sys-header-deps">, HelpText<"Include system headers in dependency output">, MarshallingInfoFlag>; @@ -5381,10 +5398,14 @@ def show_includes : Flag<["--"], "show-includes">, HelpText<"Print cl.exe style /showIncludes to stdout">; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Diagnostic Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def diagnostic_log_file : Separate<["-"], "diagnostic-log-file">, HelpText<"Filename (or -) to log diagnostics to">, MarshallingInfoString>; @@ -5441,10 +5462,14 @@ HelpText<"Silence ObjC rewriting warnings">, MarshallingInfoFlag>; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Frontend Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + // This isn't normally used, it is just here so we can parse a // CompilerInvocation out of a driver-derived argument vector. def cc1 : Flag<["-"], "cc1">; @@ -5752,28 +5777,27 @@ MarshallingInfoFlag>, ShouldParseIf; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Language Options //===----------------------------------------------------------------------===// -let Flags = [CC1Option, CC1AsOption, FC1Option, NoDriverOption] in { - def version : Flag<["-"], "version">, HelpText<"Print the compiler version">, + Flags<[CC1Option, CC1AsOption, FC1Option, NoDriverOption]>, MarshallingInfoFlag>; -} // let Flags = [CC1Option, CC1AsOption, FC1Option, NoDriverOption] - -let Flags = [CC1Option, CC1AsOption, NoDriverOption] in { - def main_file_name : Separate<["-"], "main-file-name">, HelpText<"Main file name to use for debug info and source if missing">, + Flags<[CC1Option, CC1AsOption, NoDriverOption]>, MarshallingInfoString>; def split_dwarf_output : Separate<["-"], "split-dwarf-output">, HelpText<"File name to use for split dwarf debug info output">, + Flags<[CC1Option, CC1AsOption, NoDriverOption]>, MarshallingInfoString>; -} +let Flags = [CC1Option, NoDriverOption] in { def fblocks_runtime_optional : Flag<["-"], "fblocks-runtime-optional">, HelpText<"Weakly link in the blocks runtime">, @@ -5972,10 +5996,14 @@ def fobjc_gc : Flag<["-"], "fobjc-gc">, Group, HelpText<"Enable Objective-C garbage collection">; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Header Search Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def nostdsysteminc : Flag<["-"], "nostdsysteminc">, HelpText<"Disable standard system #include directories">, MarshallingInfoNegativeFlag>; @@ -6009,10 +6037,14 @@ "user-provided and are used to model system and standard headers' " "paths.">; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // Preprocessor Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def chain_include : Separate<["-"], "chain-include">, MetaVarName<"">, HelpText<"Include and chain a header file after turning it into PCH">; def preamble_bytes_EQ : Joined<["-"], "preamble-bytes=">, @@ -6028,18 +6060,23 @@ HelpText<"Disable any #pragma clang __debug that can lead to crashing behavior. This is meant for testing.">, MarshallingInfoFlag>; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // OpenCL Options //===----------------------------------------------------------------------===// def cl_ext_EQ : CommaJoined<["-"], "cl-ext=">, HelpText<"OpenCL only. Enable or disable OpenCL extensions. The argument is a comma-separated sequence of one or more extension names, each prefixed by '+' or '-'.">, + Flags<[CC1Option, NoDriverOption]>, MarshallingInfoStringVector>; //===----------------------------------------------------------------------===// // CUDA Options //===----------------------------------------------------------------------===// +let Flags = [CC1Option, NoDriverOption] in { + def fcuda_is_device : Flag<["-"], "fcuda-is-device">, HelpText<"Generate code for CUDA device">, MarshallingInfoFlag>; @@ -6053,14 +6090,18 @@ HelpText<"Don't treat unattributed constexpr functions as __host__ __device__.">, MarshallingInfoNegativeFlag>; +} // let Flags = [CC1Option, NoDriverOption] + //===----------------------------------------------------------------------===// // OpenMP Options //===----------------------------------------------------------------------===// def fopenmp_is_device : Flag<["-"], "fopenmp-is-device">, - HelpText<"Generate code only for an OpenMP target device.">; + HelpText<"Generate code only for an OpenMP target device.">, + Flags<[CC1Option, NoDriverOption]>; def fopenmp_host_ir_file_path : Separate<["-"], "fopenmp-host-ir-file-path">, - HelpText<"Path to the IR file produced by the frontend for the host.">; + HelpText<"Path to the IR file produced by the frontend for the host.">, + Flags<[CC1Option, NoDriverOption]>; //===----------------------------------------------------------------------===// // SYCL Options @@ -6068,13 +6109,13 @@ def fsycl_is_device : Flag<["-"], "fsycl-is-device">, HelpText<"Generate code for SYCL device.">, + Flags<[CC1Option, NoDriverOption]>, MarshallingInfoFlag>; def fsycl_is_host : Flag<["-"], "fsycl-is-host">, HelpText<"SYCL host compilation">, + Flags<[CC1Option, NoDriverOption]>, MarshallingInfoFlag>; -} // let Flags = [CC1Option, NoDriverOption] - def sycl_std_EQ : Joined<["-"], "sycl-std=">, Group, Flags<[CC1Option, NoArgumentUnused, CoreOption]>, HelpText<"SYCL language standard to compile for.">, @@ -6093,6 +6134,7 @@ //===----------------------------------------------------------------------===// // Frontend Options - cc1 + fc1 //===----------------------------------------------------------------------===// + let Flags = [CC1Option, FC1Option, NoDriverOption] in { let Group = Action_Group in {