aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Driver/Options.def1086
-rw-r--r--lib/Driver/OptTable.cpp62
2 files changed, 581 insertions, 567 deletions
diff --git a/include/clang/Driver/Options.def b/include/clang/Driver/Options.def
index 2b66b3506b..292201cef4 100644
--- a/include/clang/Driver/Options.def
+++ b/include/clang/Driver/Options.def
@@ -16,7 +16,7 @@
#error "Define OPTION prior to including this file!"
#endif
-// OPTION(NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM,
+// OPTION(NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM,
// HELPTEXT, METAVARNAME)
// The NAME value is the option name as a string.
@@ -24,7 +24,7 @@
// The ID is the internal option id, which must be a valid
// C++ identifier, and results in a clang::driver::options::OPT_XX
// enum constant for XX.
-//
+//
// We want to unambiguously be able to refer to options from the
// driver source code, for this reason the option name is mangled into
// an id. This mangling isn't guaranteed to have an inverse, but for
@@ -48,28 +48,30 @@
// The ALIAS value is the internal name of an aliased option, or
// INVALID if the option is not an alias.
-// The PARAM value is a string containing option flags. Valid values:
-// d: The option is a "driver" option, and should not be forwarded to
-// gcc.
+// The PARAM value is a string containing a bitmask of option flags. Valid
+// values:
//
-// i: The option should not render the name when rendered as an
-// input (i.e., the option is rendered as values).
+// DriverOption: The option is a "driver" option, and should not be forwarded
+// to gcc.
//
-// l: The option is a linker input.
+// LinkerInput: The option is a linker input.
//
-// q: Don't report argument unused warnings for this option; this is
-// useful for options like -static or -dynamic which a user may
-// always end up passing, even if the platform defaults to (or
-// only supports) that option.
+// NoArgumentUnused: Don't report argument unused warnings for this option;
+// this is useful for options like -static or -dynamic which a user may
+// always end up passing, even if the platform defaults to (or only
+// supports) that option.
//
-// u: The option is unsupported, and the driver will reject command
+// Unsupported: The option is unsupported, and the driver will reject command
// lines that use it.
//
-// S: The option should be rendered separately, even if joined (only
-// sensible on joined options).
+// RenderAsInput: The option should not render the name when rendered as an
+// input (i.e., the option is rendered as values).
//
-// J: The option should be rendered joined, even if separate (only
+// RenderJoined: The option should be rendered joined, even if separate (only
// sensible on single value separate options).
+//
+// RenderSeparate: The option should be rendered separately, even if joined
+// (only sensible on joined options).
// The PARAM value is an arbitrary integer parameter; currently
// this is only used for specifying the number of arguments for
@@ -95,567 +97,567 @@
/////////
// Groups
-OPTION("<I group>", I_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<M group>", M_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<T group>", T_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<O group>", O_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<W group>", W_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<X group>", X_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<a group>", a_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<d group>", d_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<f group>", f_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<g group>", g_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<i group>", i_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<clang i group>", clang_i_Group, Group, i_Group, INVALID, "", 0, 0, 0)
-OPTION("<m group>", m_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<m x86 features group>", m_x86_Features_Group, Group, INVALID, INVALID, "", 0, 0, 0)
-OPTION("<u group>", u_Group, Group, INVALID, INVALID, "", 0, 0, 0)
+OPTION("<I group>", I_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<M group>", M_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<T group>", T_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<O group>", O_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<W group>", W_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<X group>", X_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<a group>", a_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<d group>", d_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<f group>", f_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<g group>", g_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<i group>", i_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<clang i group>", clang_i_Group, Group, i_Group, INVALID, 0, 0, 0, 0)
+OPTION("<m group>", m_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<m x86 features group>", m_x86_Features_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("<u group>", u_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
-OPTION("<pedantic group>", pedantic_Group, Group, INVALID, INVALID, "", 0, 0, 0)
+OPTION("<pedantic group>", pedantic_Group, Group, INVALID, INVALID, 0, 0, 0, 0)
// Temporary groups for clang options which we know we don't support,
// but don't want to verbosely warn the user about.
-OPTION("<clang ignored f group>", clang_ignored_f_Group, Group, f_Group,
- INVALID, "", 0, 0, 0)
-OPTION("<clang ignored m group>", clang_ignored_m_Group, Group, m_Group,
- INVALID, "", 0, 0, 0)
+OPTION("<clang ignored f group>", clang_ignored_f_Group, Group, f_Group,
+ INVALID, 0, 0, 0, 0)
+OPTION("<clang ignored m group>", clang_ignored_m_Group, Group, m_Group,
+ INVALID, 0, 0, 0, 0)
//////////
// Options
-OPTION("-###", _HASH_HASH_HASH, Flag, INVALID, INVALID, "d", 0,
+OPTION("-###", _HASH_HASH_HASH, Flag, INVALID, INVALID, DriverOption, 0,
"Print the commands to run for this compilation", 0)
-OPTION("--CLASSPATH=", _CLASSPATH_EQ, Joined, INVALID, fclasspath_EQ, "", 0, 0, 0)
-OPTION("--CLASSPATH", _CLASSPATH, Separate, INVALID, fclasspath_EQ, "J", 0, 0, 0)
-OPTION("--all-warnings", _all_warnings, Flag, INVALID, Wall, "", 0, 0, 0)
-OPTION("--analyze-auto", _analyze_auto, Flag, INVALID, INVALID, "d", 0, 0, 0)
-OPTION("--analyzer-no-default-checks", _analyzer_no_default_checks, Flag, INVALID, INVALID, "d", 0, 0, 0)
-OPTION("--analyzer-output", _analyzer_output, JoinedOrSeparate, INVALID, INVALID, "d", 0, 0, 0)
-OPTION("--analyze", _analyze, Flag, INVALID, INVALID, "d", 0,
+OPTION("--CLASSPATH=", _CLASSPATH_EQ, Joined, INVALID, fclasspath_EQ, 0, 0, 0, 0)
+OPTION("--CLASSPATH", _CLASSPATH, Separate, INVALID, fclasspath_EQ, RenderJoined, 0, 0, 0)
+OPTION("--all-warnings", _all_warnings, Flag, INVALID, Wall, 0, 0, 0, 0)
+OPTION("--analyze-auto", _analyze_auto, Flag, INVALID, INVALID, DriverOption, 0, 0, 0)
+OPTION("--analyzer-no-default-checks", _analyzer_no_default_checks, Flag, INVALID, INVALID, DriverOption, 0, 0, 0)
+OPTION("--analyzer-output", _analyzer_output, JoinedOrSeparate, INVALID, INVALID, DriverOption, 0, 0, 0)
+OPTION("--analyze", _analyze, Flag, INVALID, INVALID, DriverOption, 0,
"Run the static analyzer", 0)
-OPTION("--ansi", _ansi, Flag, INVALID, ansi, "", 0, 0, 0)
-OPTION("--assemble", _assemble, Flag, INVALID, S, "", 0, 0, 0)
-OPTION("--assert=", _assert_EQ, Joined, INVALID, A, "S", 0, 0, 0)
-OPTION("--assert", _assert, Separate, INVALID, A, "", 0, 0, 0)
-OPTION("--bootclasspath=", _bootclasspath_EQ, Joined, INVALID, fbootclasspath_EQ, "", 0, 0, 0)
-OPTION("--bootclasspath", _bootclasspath, Separate, INVALID, fbootclasspath_EQ, "J", 0, 0, 0)
-OPTION("--classpath=", _classpath_EQ, Joined, INVALID, fclasspath_EQ, "", 0, 0, 0)
-OPTION("--classpath", _classpath, Separate, INVALID, fclasspath_EQ, "J", 0, 0, 0)
-OPTION("--combine", _combine, Flag, INVALID, combine, "u", 0, 0, 0)
-OPTION("--comments-in-macros", _comments_in_macros, Flag, INVALID, CC, "", 0, 0, 0)
-OPTION("--comments", _comments, Flag, INVALID, C, "", 0, 0, 0)
-OPTION("--compile", _compile, Flag, INVALID, c, "", 0, 0, 0)
-OPTION("--constant-cfstrings", _constant_cfstrings, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("--coverage", _coverage, Flag, INVALID, coverage, "", 0, 0, 0)
-OPTION("--debug=", _debug_EQ, Joined, INVALID, g_Flag, "u", 0, 0, 0)
-OPTION("--debug", _debug, Flag, INVALID, g_Flag, "u", 0, 0, 0)
-OPTION("--define-macro=", _define_macro_EQ, Joined, INVALID, D, "", 0, 0, 0)
-OPTION("--define-macro", _define_macro, Separate, INVALID, D, "J", 0, 0, 0)
-OPTION("--dependencies", _dependencies, Flag, INVALID, M, "", 0, 0, 0)
-OPTION("--encoding=", _encoding_EQ, Joined, INVALID, fencoding_EQ, "", 0, 0, 0)
-OPTION("--encoding", _encoding, Separate, INVALID, fencoding_EQ, "J", 0, 0, 0)
-OPTION("--entry", _entry, Flag, INVALID, e, "", 0, 0, 0)
-OPTION("--extdirs=", _extdirs_EQ, Joined, INVALID, fextdirs_EQ, "", 0, 0, 0)
-OPTION("--extdirs", _extdirs, Separate, INVALID, fextdirs_EQ, "J", 0, 0, 0)
-OPTION("--extra-warnings", _extra_warnings, Flag, INVALID, W_Joined, "", 0, 0, 0)
-OPTION("--for-linker=", _for_linker_EQ, Joined, INVALID, Xlinker, "liS", 0, 0, 0)
-OPTION("--for-linker", _for_linker, Separate, INVALID, Xlinker, "li", 0, 0, 0)
-OPTION("--force-link=", _force_link_EQ, Joined, INVALID, u, "S", 0, 0, 0)
-OPTION("--force-link", _force_link, Separate, INVALID, u, "", 0, 0, 0)
-OPTION("--help-hidden", _help_hidden, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("--help", _help, Flag, INVALID, INVALID, "", 0,
+OPTION("--ansi", _ansi, Flag, INVALID, ansi, 0, 0, 0, 0)
+OPTION("--assemble", _assemble, Flag, INVALID, S, 0, 0, 0, 0)
+OPTION("--assert=", _assert_EQ, Joined, INVALID, A, RenderSeparate, 0, 0, 0)
+OPTION("--assert", _assert, Separate, INVALID, A, 0, 0, 0, 0)
+OPTION("--bootclasspath=", _bootclasspath_EQ, Joined, INVALID, fbootclasspath_EQ, 0, 0, 0, 0)
+OPTION("--bootclasspath", _bootclasspath, Separate, INVALID, fbootclasspath_EQ, RenderJoined, 0, 0, 0)
+OPTION("--classpath=", _classpath_EQ, Joined, INVALID, fclasspath_EQ, 0, 0, 0, 0)
+OPTION("--classpath", _classpath, Separate, INVALID, fclasspath_EQ, RenderJoined, 0, 0, 0)
+OPTION("--combine", _combine, Flag, INVALID, combine, Unsupported, 0, 0, 0)
+OPTION("--comments-in-macros", _comments_in_macros, Flag, INVALID, CC, 0, 0, 0, 0)
+OPTION("--comments", _comments, Flag, INVALID, C, 0, 0, 0, 0)
+OPTION("--compile", _compile, Flag, INVALID, c, 0, 0, 0, 0)
+OPTION("--constant-cfstrings", _constant_cfstrings, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("--coverage", _coverage, Flag, INVALID, coverage, 0, 0, 0, 0)
+OPTION("--debug=", _debug_EQ, Joined, INVALID, g_Flag, Unsupported, 0, 0, 0)
+OPTION("--debug", _debug, Flag, INVALID, g_Flag, Unsupported, 0, 0, 0)
+OPTION("--define-macro=", _define_macro_EQ, Joined, INVALID, D, 0, 0, 0, 0)
+OPTION("--define-macro", _define_macro, Separate, INVALID, D, RenderJoined, 0, 0, 0)
+OPTION("--dependencies", _dependencies, Flag, INVALID, M, 0, 0, 0, 0)
+OPTION("--encoding=", _encoding_EQ, Joined, INVALID, fencoding_EQ, 0, 0, 0, 0)
+OPTION("--encoding", _encoding, Separate, INVALID, fencoding_EQ, RenderJoined, 0, 0, 0)
+OPTION("--entry", _entry, Flag, INVALID, e, 0, 0, 0, 0)
+OPTION("--extdirs=", _extdirs_EQ, Joined, INVALID, fextdirs_EQ, 0, 0, 0, 0)
+OPTION("--extdirs", _extdirs, Separate, INVALID, fextdirs_EQ, RenderJoined, 0, 0, 0)
+OPTION("--extra-warnings", _extra_warnings, Flag, INVALID, W_Joined, 0, 0, 0, 0)
+OPTION("--for-linker=", _for_linker_EQ, Joined, INVALID, Xlinker, LinkerInput | RenderAsInput | RenderSeparate, 0, 0, 0)
+OPTION("--for-linker", _for_linker, Separate, INVALID, Xlinker, LinkerInput | RenderAsInput, 0, 0, 0)
+OPTION("--force-link=", _force_link_EQ, Joined, INVALID, u, RenderSeparate, 0, 0, 0)
+OPTION("--force-link", _force_link, Separate, INVALID, u, 0, 0, 0, 0)
+OPTION("--help-hidden", _help_hidden, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("--help", _help, Flag, INVALID, INVALID, 0, 0,
"Display available options", 0)
-OPTION("--imacros=", _imacros_EQ, Joined, INVALID, imacros, "S", 0, 0, 0)
-OPTION("--imacros", _imacros, Separate, INVALID, imacros, "", 0, 0, 0)
-OPTION("--include-barrier", _include_barrier, Flag, INVALID, I_, "", 0, 0, 0)
-OPTION("--include-directory-after=", _include_directory_after_EQ, Joined, INVALID, idirafter, "S", 0, 0, 0)
-OPTION("--include-directory-after", _include_directory_after, Separate, INVALID, idirafter, "", 0, 0, 0)
-OPTION("--include-directory=", _include_directory_EQ, Joined, INVALID, I, "", 0, 0, 0)
-OPTION("--include-directory", _include_directory, Separate, INVALID, I, "J", 0, 0, 0)
-OPTION("--include-prefix=", _include_prefix_EQ, Joined, INVALID, iprefix, "S", 0, 0, 0)
-OPTION("--include-prefix", _include_prefix, Separate, INVALID, iprefix, "", 0, 0, 0)
-OPTION("--include-with-prefix-after=", _include_with_prefix_after_EQ, Joined, INVALID, iwithprefix, "S", 0, 0, 0)
-OPTION("--include-with-prefix-after", _include_with_prefix_after, Separate, INVALID, iwithprefix, "", 0, 0, 0)
-OPTION("--include-with-prefix-before=", _include_with_prefix_before_EQ, Joined, INVALID, iwithprefixbefore, "S", 0, 0, 0)
-OPTION("--include-with-prefix-before", _include_with_prefix_before, Separate, INVALID, iwithprefixbefore, "", 0, 0, 0)
-OPTION("--include-with-prefix=", _include_with_prefix_EQ, Joined, INVALID, iwithprefix, "S", 0, 0, 0)
-OPTION("--include-with-prefix", _include_with_prefix, Separate, INVALID, iwithprefix, "", 0, 0, 0)
-OPTION("--include=", _include_EQ, Joined, INVALID, include, "S", 0, 0, 0)
-OPTION("--include", _include, Separate, INVALID, include, "", 0, 0, 0)
-OPTION("--language=", _language_EQ, Joined, INVALID, x, "S", 0, 0, 0)
-OPTION("--language", _language, Separate, INVALID, x, "", 0, 0, 0)
-OPTION("--library-directory=", _library_directory_EQ, Joined, INVALID, L, "S", 0, 0, 0)
-OPTION("--library-directory", _library_directory, Separate, INVALID, L, "", 0, 0, 0)
-OPTION("--machine-=", _machine__EQ, Joined, INVALID, m_Joined, "u", 0, 0, 0)
-OPTION("--machine-", _machine_, Joined, INVALID, m_Joined, "u", 0, 0, 0)
-OPTION("--machine=", _machine_EQ, Joined, INVALID, m_Joined, "", 0, 0, 0)
-OPTION("--machine", _machine, Separate, INVALID, m_Joined, "J", 0, 0, 0)
-OPTION("--no-integrated-cpp", _no_integrated_cpp, Flag, INVALID, no_integrated_cpp, "", 0, 0, 0)
-OPTION("--no-line-commands", _no_line_commands, Flag, INVALID, P, "", 0, 0, 0)
-OPTION("--no-standard-includes", _no_standard_includes, Flag, INVALID, nostdinc, "", 0, 0, 0)
-OPTION("--no-standard-libraries", _no_standard_libraries, Flag, INVALID, nostdlib, "", 0, 0, 0)
-OPTION("--no-undefined", _no_undefined, Flag, INVALID, INVALID, "l", 0, 0, 0)
-OPTION("--no-warnings", _no_warnings, Flag, INVALID, w, "", 0, 0, 0)
-OPTION("--optimize=", _optimize_EQ, Joined, INVALID, O, "u", 0, 0, 0)
-OPTION("--optimize", _optimize, Flag, INVALID, O, "u", 0, 0, 0)
-OPTION("--output-class-directory=", _output_class_directory_EQ, Joined, INVALID, foutput_class_dir_EQ, "", 0, 0, 0)
-OPTION("--output-class-directory", _output_class_directory, Separate, INVALID, foutput_class_dir_EQ, "J", 0, 0, 0)
-OPTION("--output=", _output_EQ, Joined, INVALID, o, "S", 0, 0, 0)
-OPTION("--output", _output, Separate, INVALID, o, "", 0, 0, 0)
-OPTION("--param=", _param_EQ, Joined, INVALID, _param, "S", 0, 0, 0)
-OPTION("--param", _param, Separate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("--pass-exit-codes", _pass_exit_codes, Flag, INVALID, pass_exit_codes, "", 0, 0, 0)
-OPTION("--pedantic-errors", _pedantic_errors, Flag, INVALID, pedantic_errors, "", 0, 0, 0)
-OPTION("--pedantic", _pedantic, Flag, INVALID, pedantic, "", 0, 0, 0)
-OPTION("--pipe", _pipe, Flag, INVALID, pipe, "d", 0, 0, 0)
-OPTION("--prefix=", _prefix_EQ, Joined, INVALID, B, "S", 0, 0, 0)
-OPTION("--prefix", _prefix, Separate, INVALID, B, "", 0, 0, 0)
-OPTION("--preprocess", _preprocess, Flag, INVALID, E, "", 0, 0, 0)
-OPTION("--print-file-name=", _print_file_name_EQ, Joined, INVALID, print_file_name_EQ, "", 0, 0, 0)
-OPTION("--print-file-name", _print_file_name, Separate, INVALID, print_file_name_EQ, "", 0, 0, 0)
-OPTION("--print-libgcc-file-name", _print_libgcc_file_name, Flag, INVALID, print_libgcc_file_name, "", 0, 0, 0)
-OPTION("--print-missing-file-dependencies", _print_missing_file_dependencies, Flag, INVALID, MG, "", 0, 0, 0)
-OPTION("--print-multi-directory", _print_multi_directory, Flag, INVALID, print_multi_directory, "", 0, 0, 0)
-OPTION("--print-multi-lib", _print_multi_lib, Flag, INVALID, print_multi_lib, "", 0, 0, 0)
-OPTION("--print-multi-os-directory", _print_multi_os_directory, Flag, INVALID, print_multi_os_directory, "", 0, 0, 0)
-OPTION("--print-prog-name=", _print_prog_name_EQ, Joined, INVALID, print_prog_name_EQ, "", 0, 0, 0)
-OPTION("--print-prog-name", _print_prog_name, Separate, INVALID, print_prog_name_EQ, "", 0, 0, 0)
-OPTION("--print-search-dirs", _print_search_dirs, Flag, INVALID, print_search_dirs, "", 0, 0, 0)
-OPTION("--profile-blocks", _profile_blocks, Flag, INVALID, a, "", 0, 0, 0)
-OPTION("--profile", _profile, Flag, INVALID, p, "", 0, 0, 0)
-OPTION("--relocatable-pch", _relocatable_pch, Flag, INVALID, INVALID, "", 0,
+OPTION("--imacros=", _imacros_EQ, Joined, INVALID, imacros, RenderSeparate, 0, 0, 0)
+OPTION("--imacros", _imacros, Separate, INVALID, imacros, 0, 0, 0, 0)
+OPTION("--include-barrier", _include_barrier, Flag, INVALID, I_, 0, 0, 0, 0)
+OPTION("--include-directory-after=", _include_directory_after_EQ, Joined, INVALID, idirafter, RenderSeparate, 0, 0, 0)
+OPTION("--include-directory-after", _include_directory_after, Separate, INVALID, idirafter, 0, 0, 0, 0)
+OPTION("--include-directory=", _include_directory_EQ, Joined, INVALID, I, 0, 0, 0, 0)
+OPTION("--include-directory", _include_directory, Separate, INVALID, I, RenderJoined, 0, 0, 0)
+OPTION("--include-prefix=", _include_prefix_EQ, Joined, INVALID, iprefix, RenderSeparate, 0, 0, 0)
+OPTION("--include-prefix", _include_prefix, Separate, INVALID, iprefix, 0, 0, 0, 0)
+OPTION("--include-with-prefix-after=", _include_with_prefix_after_EQ, Joined, INVALID, iwithprefix, RenderSeparate, 0, 0, 0)
+OPTION("--include-with-prefix-after", _include_with_prefix_after, Separate, INVALID, iwithprefix, 0, 0, 0, 0)
+OPTION("--include-with-prefix-before=", _include_with_prefix_before_EQ, Joined, INVALID, iwithprefixbefore, RenderSeparate, 0, 0, 0)
+OPTION("--include-with-prefix-before", _include_with_prefix_before, Separate, INVALID, iwithprefixbefore, 0, 0, 0, 0)
+OPTION("--include-with-prefix=", _include_with_prefix_EQ, Joined, INVALID, iwithprefix, RenderSeparate, 0, 0, 0)
+OPTION("--include-with-prefix", _include_with_prefix, Separate, INVALID, iwithprefix, 0, 0, 0, 0)
+OPTION("--include=", _include_EQ, Joined, INVALID, include, RenderSeparate, 0, 0, 0)
+OPTION("--include", _include, Separate, INVALID, include, 0, 0, 0, 0)
+OPTION("--language=", _language_EQ, Joined, INVALID, x, RenderSeparate, 0, 0, 0)
+OPTION("--language", _language, Separate, INVALID, x, 0, 0, 0, 0)
+OPTION("--library-directory=", _library_directory_EQ, Joined, INVALID, L, RenderSeparate, 0, 0, 0)
+OPTION("--library-directory", _library_directory, Separate, INVALID, L, 0, 0, 0, 0)
+OPTION("--machine-=", _machine__EQ, Joined, INVALID, m_Joined, Unsupported, 0, 0, 0)
+OPTION("--machine-", _machine_, Joined, INVALID, m_Joined, Unsupported, 0, 0, 0)
+OPTION("--machine=", _machine_EQ, Joined, INVALID, m_Joined, 0, 0, 0, 0)
+OPTION("--machine", _machine, Separate, INVALID, m_Joined, RenderJoined, 0, 0, 0)
+OPTION("--no-integrated-cpp", _no_integrated_cpp, Flag, INVALID, no_integrated_cpp, 0, 0, 0, 0)
+OPTION("--no-line-commands", _no_line_commands, Flag, INVALID, P, 0, 0, 0, 0)
+OPTION("--no-standard-includes", _no_standard_includes, Flag, INVALID, nostdinc, 0, 0, 0, 0)
+OPTION("--no-standard-libraries", _no_standard_libraries, Flag, INVALID, nostdlib, 0, 0, 0, 0)
+OPTION("--no-undefined", _no_undefined, Flag, INVALID, INVALID, LinkerInput, 0, 0, 0)
+OPTION("--no-warnings", _no_warnings, Flag, INVALID, w, 0, 0, 0, 0)
+OPTION("--optimize=", _optimize_EQ, Joined, INVALID, O, Unsupported, 0, 0, 0)
+OPTION("--optimize", _optimize, Flag, INVALID, O, Unsupported, 0, 0, 0)
+OPTION("--output-class-directory=", _output_class_directory_EQ, Joined, INVALID, foutput_class_dir_EQ, 0, 0, 0, 0)
+OPTION("--output-class-directory", _output_class_directory, Separate, INVALID, foutput_class_dir_EQ, RenderJoined, 0, 0, 0)
+OPTION("--output=", _output_EQ, Joined, INVALID, o, RenderSeparate, 0, 0, 0)
+OPTION("--output", _output, Separate, INVALID, o, 0, 0, 0, 0)
+OPTION("--param=", _param_EQ, Joined, INVALID, _param, RenderSeparate, 0, 0, 0)
+OPTION("--param", _param, Separate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("--pass-exit-codes", _pass_exit_codes, Flag, INVALID, pass_exit_codes, 0, 0, 0, 0)
+OPTION("--pedantic-errors", _pedantic_errors, Flag, INVALID, pedantic_errors, 0, 0, 0, 0)
+OPTION("--pedantic", _pedantic, Flag, INVALID, pedantic, 0, 0, 0, 0)
+OPTION("--pipe", _pipe, Flag, INVALID, pipe, DriverOption, 0, 0, 0)
+OPTION("--prefix=", _prefix_EQ, Joined, INVALID, B, RenderSeparate, 0, 0, 0)
+OPTION("--prefix", _prefix, Separate, INVALID, B, 0, 0, 0, 0)
+OPTION("--preprocess", _preprocess, Flag, INVALID, E, 0, 0, 0, 0)
+OPTION("--print-file-name=", _print_file_name_EQ, Joined, INVALID, print_file_name_EQ, 0, 0, 0, 0)
+OPTION("--print-file-name", _print_file_name, Separate, INVALID, print_file_name_EQ, 0, 0, 0, 0)
+OPTION("--print-libgcc-file-name", _print_libgcc_file_name, Flag, INVALID, print_libgcc_file_name, 0, 0, 0, 0)
+OPTION("--print-missing-file-dependencies", _print_missing_file_dependencies, Flag, INVALID, MG, 0, 0, 0, 0)
+OPTION("--print-multi-directory", _print_multi_directory, Flag, INVALID, print_multi_directory, 0, 0, 0, 0)
+OPTION("--print-multi-lib", _print_multi_lib, Flag, INVALID, print_multi_lib, 0, 0, 0, 0)
+OPTION("--print-multi-os-directory", _print_multi_os_directory, Flag, INVALID, print_multi_os_directory, 0, 0, 0, 0)
+OPTION("--print-prog-name=", _print_prog_name_EQ, Joined, INVALID, print_prog_name_EQ, 0, 0, 0, 0)
+OPTION("--print-prog-name", _print_prog_name, Separate, INVALID, print_prog_name_EQ, 0, 0, 0, 0)
+OPTION("--print-search-dirs", _print_search_dirs, Flag, INVALID, print_search_dirs, 0, 0, 0, 0)
+OPTION("--profile-blocks", _profile_blocks, Flag, INVALID, a, 0, 0, 0, 0)
+OPTION("--profile", _profile, Flag, INVALID, p, 0, 0, 0, 0)
+OPTION("--relocatable-pch", _relocatable_pch, Flag, INVALID, INVALID, 0, 0,
"Build a relocatable precompiled header", 0)
-OPTION("--resource=", _resource_EQ, Joined, INVALID, fcompile_resource_EQ, "", 0, 0, 0)
-OPTION("--resource", _resource, Separate, INVALID, fcompile_resource_EQ, "J", 0, 0, 0)
-OPTION("--save-temps", _save_temps, Flag, INVALID, save_temps, "", 0, 0, 0)
-OPTION("--shared", _shared, Flag, INVALID, shared, "", 0, 0, 0)
-OPTION("--signed-char", _signed_char, Flag, INVALID, fsigned_char, "", 0, 0, 0)
-OPTION("--specs=", _specs_EQ, Joined, INVALID, specs_EQ, "u", 0, 0, 0)
-OPTION("--specs", _specs, Separate, INVALID, specs_EQ, "uJ", 0, 0, 0)
-OPTION("--static", _static, Flag, INVALID, static, "", 0, 0, 0)
-OPTION("--std=", _std_EQ, Joined, INVALID, std_EQ, "", 0, 0, 0)
-OPTION("--std", _std, Separate, INVALID, std_EQ, "J", 0, 0, 0)
-OPTION("--sysroot=", _sysroot_EQ, Joined, INVALID, INVALID, "", 0, 0, 0)
-OPTION("--sysroot", _sysroot, Separate, INVALID, _sysroot_EQ, "J", 0, 0, 0)
-OPTION("--target-help", _target_help, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("--trace-includes", _trace_includes, Flag, INVALID, H, "", 0, 0, 0)
-OPTION("--traditional-cpp", _traditional_cpp, Flag, INVALID, traditional_cpp, "", 0, 0, 0)
-OPTION("--traditional", _traditional, Flag, INVALID, traditional, "", 0, 0, 0)
-OPTION("--trigraphs", _trigraphs, Flag, INVALID, trigraphs, "", 0, 0, 0)
-OPTION("--undefine-macro=", _undefine_macro_EQ, Joined, INVALID, U, "", 0, 0, 0)
-OPTION("--undefine-macro", _undefine_macro, Separate, INVALID, U, "J", 0, 0, 0)
-OPTION("--unsigned-char", _unsigned_char, Flag, INVALID, funsigned_char, "", 0, 0, 0)
-OPTION("--user-dependencies", _user_dependencies, Flag, INVALID, MM, "", 0, 0, 0)
-OPTION("--verbose", _verbose, Flag, INVALID, v, "", 0, 0, 0)
-OPTION("--version", _version, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("--warn-=", _warn__EQ, Joined, INVALID, W_Joined, "u", 0, 0, 0)
-OPTION("--warn-", _warn_, Joined, INVALID, W_Joined, "u", 0, 0, 0)
-OPTION("--write-dependencies", _write_dependencies, Flag, INVALID, MD, "", 0, 0, 0)
-OPTION("--write-user-dependencies", _write_user_dependencies, Flag, INVALID, MMD, "", 0, 0, 0)
-OPTION("--", _, Joined, INVALID, f, "u", 0, 0, 0)
-OPTION("-A", A, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-B", B, JoinedOrSeparate, INVALID, INVALID, "u", 0, 0, 0)
-OPTION("-CC", CC, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-C", C, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-D", D, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-E", E, Flag, INVALID, INVALID, "d", 0,
+OPTION("--resource=", _resource_EQ, Joined, INVALID, fcompile_resource_EQ, 0, 0, 0, 0)
+OPTION("--resource", _resource, Separate, INVALID, fcompile_resource_EQ, RenderJoined, 0, 0, 0)
+OPTION("--save-temps", _save_temps, Flag, INVALID, save_temps, 0, 0, 0, 0)
+OPTION("--shared", _shared, Flag, INVALID, shared, 0, 0, 0, 0)
+OPTION("--signed-char", _signed_char, Flag, INVALID, fsigned_char, 0, 0, 0, 0)
+OPTION("--specs=", _specs_EQ, Joined, INVALID, specs_EQ, Unsupported, 0, 0, 0)
+OPTION("--specs", _specs, Separate, INVALID, specs_EQ, RenderJoined | Unsupported, 0, 0, 0)
+OPTION("--static", _static, Flag, INVALID, static, 0, 0, 0, 0)
+OPTION("--std=", _std_EQ, Joined, INVALID, std_EQ, 0, 0, 0, 0)
+OPTION("--std", _std, Separate, INVALID, std_EQ, RenderJoined, 0, 0, 0)
+OPTION("--sysroot=", _sysroot_EQ, Joined, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("--sysroot", _sysroot, Separate, INVALID, _sysroot_EQ, RenderJoined, 0, 0, 0)
+OPTION("--target-help", _target_help, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("--trace-includes", _trace_includes, Flag, INVALID, H, 0, 0, 0, 0)
+OPTION("--traditional-cpp", _traditional_cpp, Flag, INVALID, traditional_cpp, 0, 0, 0, 0)
+OPTION("--traditional", _traditional, Flag, INVALID, traditional, 0, 0, 0, 0)
+OPTION("--trigraphs", _trigraphs, Flag, INVALID, trigraphs, 0, 0, 0, 0)
+OPTION("--undefine-macro=", _undefine_macro_EQ, Joined, INVALID, U, 0, 0, 0, 0)
+OPTION("--undefine-macro", _undefine_macro, Separate, INVALID, U, RenderJoined, 0, 0, 0)
+OPTION("--unsigned-char", _unsigned_char, Flag, INVALID, funsigned_char, 0, 0, 0, 0)
+OPTION("--user-dependencies", _user_dependencies, Flag, INVALID, MM, 0, 0, 0, 0)
+OPTION("--verbose", _verbose, Flag, INVALID, v, 0, 0, 0, 0)
+OPTION("--version", _version, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("--warn-=", _warn__EQ, Joined, INVALID, W_Joined, Unsupported, 0, 0, 0)
+OPTION("--warn-", _warn_, Joined, INVALID, W_Joined, Unsupported, 0, 0, 0)
+OPTION("--write-dependencies", _write_dependencies, Flag, INVALID, MD, 0, 0, 0, 0)
+OPTION("--write-user-dependencies", _write_user_dependencies, Flag, INVALID, MMD, 0, 0, 0, 0)
+OPTION("--", _, Joined, INVALID, f, Unsupported, 0, 0, 0)
+OPTION("-A", A, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-B", B, JoinedOrSeparate, INVALID, INVALID, Unsupported, 0, 0, 0)
+OPTION("-CC", CC, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-C", C, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-D", D, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-E", E, Flag, INVALID, INVALID, DriverOption, 0,
"Only run the preprocessor", 0)
-OPTION("-F", F, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-H", H, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-I-", I_, Flag, I_Group, INVALID, "", 0, 0, 0)
-OPTION("-I", I, JoinedOrSeparate, I_Group, INVALID, "", 0, 0, 0)
-OPTION("-L", L, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-MD", MD, Flag, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MF", MF, JoinedOrSeparate, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MG", MG, Flag, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MMD", MMD, Flag, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MM", MM, Flag, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MP", MP, Flag, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MQ", MQ, JoinedOrSeparate, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-MT", MT, JoinedOrSeparate, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-Mach", Mach, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-M", M, Flag, M_Group, INVALID, "", 0, 0, 0)
-OPTION("-O4", O4, Joined, O_Group, INVALID, "", 0, 0, 0)
-OPTION("-ObjC++", ObjCXX, Flag, INVALID, INVALID, "d", 0,
+OPTION("-F", F, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-H", H, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-I-", I_, Flag, I_Group, INVALID, 0, 0, 0, 0)
+OPTION("-I", I, JoinedOrSeparate, I_Group, INVALID, 0, 0, 0, 0)
+OPTION("-L", L, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-MD", MD, Flag, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MF", MF, JoinedOrSeparate, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MG", MG, Flag, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MMD", MMD, Flag, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MM", MM, Flag, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MP", MP, Flag, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MQ", MQ, JoinedOrSeparate, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-MT", MT, JoinedOrSeparate, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Mach", Mach, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-M", M, Flag, M_Group, INVALID, 0, 0, 0, 0)
+OPTION("-O4", O4, Joined, O_Group, INVALID, 0, 0, 0, 0)
+OPTION("-ObjC++", ObjCXX, Flag, INVALID, INVALID, DriverOption, 0,
"Treat source input files as Objective-C++ inputs", 0)
-OPTION("-ObjC", ObjC, Flag, INVALID, INVALID, "d", 0,
+OPTION("-ObjC", ObjC, Flag, INVALID, INVALID, DriverOption, 0,
"Treat source input files as Objective-C inputs", 0)
-OPTION("-O", O, Joined, O_Group, INVALID, "", 0, 0, 0)
-OPTION("-P", P, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-Qn", Qn, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-Qunused-arguments", Qunused_arguments, Flag, INVALID, INVALID, "d", 0,
+OPTION("-O", O, Joined, O_Group, INVALID, 0, 0, 0, 0)
+OPTION("-P", P, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-Qn", Qn, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-Qunused-arguments", Qunused_arguments, Flag, INVALID, INVALID, DriverOption, 0,
"Don't emit warning for unused driver arguments", 0)
-OPTION("-Q", Q, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-R", R, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-S", S, Flag, INVALID, INVALID, "d", 0,
+OPTION("-Q", Q, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-R", R, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-S", S, Flag, INVALID, INVALID, DriverOption, 0,
"Only run preprocess and compilation steps", 0)
-OPTION("-Tbss", Tbss, JoinedOrSeparate, T_Group, INVALID, "", 0, 0, 0)
-OPTION("-Tdata", Tdata, JoinedOrSeparate, T_Group, INVALID, "", 0, 0, 0)
-OPTION("-Ttext", Ttext, JoinedOrSeparate, T_Group, INVALID, "", 0, 0, 0)
-OPTION("-T", T, JoinedOrSeparate, T_Group, INVALID, "", 0, 0, 0)
-OPTION("-U", U, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-V", V, JoinedOrSeparate, INVALID, INVALID, "du", 0, 0, 0)
-OPTION("-Wa,", Wa_COMMA, CommaJoined, INVALID, INVALID, "", 0,
+OPTION("-Tbss", Tbss, JoinedOrSeparate, T_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Tdata", Tdata, JoinedOrSeparate, T_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Ttext", Ttext, JoinedOrSeparate, T_Group, INVALID, 0, 0, 0, 0)
+OPTION("-T", T, JoinedOrSeparate, T_Group, INVALID, 0, 0, 0, 0)
+OPTION("-U", U, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-V", V, JoinedOrSeparate, INVALID, INVALID, DriverOption | Unsupported, 0, 0, 0)
+OPTION("-Wa,", Wa_COMMA, CommaJoined, INVALID, INVALID, 0, 0,
"Pass the comma separated arguments in <arg> to the assembler", "<arg>")
-OPTION("-Wall", Wall, Flag, W_Group, INVALID, "", 0, 0, 0)
-OPTION("-Wextra", Wextra, Flag, W_Group, INVALID, "", 0, 0, 0)
-OPTION("-Wl,", Wl_COMMA, CommaJoined, INVALID, INVALID, "li", 0,
+OPTION("-Wall", Wall, Flag, W_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Wextra", Wextra, Flag, W_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Wl,", Wl_COMMA, CommaJoined, INVALID, INVALID, LinkerInput | RenderAsInput, 0,
"Pass the comma separated arguments in <arg> to the linker", "<arg>")
-OPTION("-Wno-nonportable-cfstrings", Wno_nonportable_cfstrings, Joined, W_Group, INVALID, "", 0, 0, 0)
-OPTION("-Wnonportable-cfstrings", Wnonportable_cfstrings, Joined, W_Group, INVALID, "", 0, 0, 0)
-OPTION("-Wp,", Wp_COMMA, CommaJoined, INVALID, INVALID, "", 0,
+OPTION("-Wno-nonportable-cfstrings", Wno_nonportable_cfstrings, Joined, W_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Wnonportable-cfstrings", Wnonportable_cfstrings, Joined, W_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Wp,", Wp_COMMA, CommaJoined, INVALID, INVALID, 0, 0,
"Pass the comma separated arguments in <arg> to the preprocessor", "<arg>")
-OPTION("-W", W_Joined, Joined, W_Group, INVALID, "", 0, 0, 0)
-OPTION("-Xanalyzer", Xanalyzer, Separate, INVALID, INVALID, "", 0,
+OPTION("-W", W_Joined, Joined, W_Group, INVALID, 0, 0, 0, 0)
+OPTION("-Xanalyzer", Xanalyzer, Separate, INVALID, INVALID, 0, 0,
"Pass <arg> to the static analyzer", "<arg>")
-OPTION("-Xarch_", Xarch__, JoinedAndSeparate, INVALID, INVALID, "d", 0, 0, 0)
-OPTION("-Xassembler", Xassembler, Separate, INVALID, INVALID, "", 0,
+OPTION("-Xarch_", Xarch__, JoinedAndSeparate, INVALID, INVALID, DriverOption, 0, 0, 0)
+OPTION("-Xassembler", Xassembler, Separate, INVALID, INVALID, 0, 0,
"Pass <arg> to the assembler", "<arg>")
-OPTION("-Xclang", Xclang, Separate, INVALID, INVALID, "", 0,
+OPTION("-Xclang", Xclang, Separate, INVALID, INVALID, 0, 0,
"Pass <arg> to the clang compiler", "<arg>")
-OPTION("-Xlinker", Xlinker, Separate, INVALID, INVALID, "li", 0,
+OPTION("-Xlinker", Xlinker, Separate, INVALID, INVALID, LinkerInput | RenderAsInput, 0,
"Pass <arg> to the linker", "<arg>")
-OPTION("-Xpreprocessor", Xpreprocessor, Separate, INVALID, INVALID, "", 0,
+OPTION("-Xpreprocessor", Xpreprocessor, Separate, INVALID, INVALID, 0, 0,
"Pass <arg> to the preprocessor", "<arg>")
-OPTION("-X", X_Flag, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-X", X_Joined, Joined, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-Z", Z_Flag, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-Z", Z_Joined, Joined, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-all_load", all__load, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-allowable_client", allowable__client, Separate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-ansi", ansi, Flag, a_Group, INVALID, "", 0, 0, 0)
-OPTION("-arch_errors_fatal", arch__errors__fatal, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-arch", arch, Separate, INVALID, INVALID, "d", 0, 0, 0)
-OPTION("-a", a, Joined, a_Group, INVALID, "", 0, 0, 0)
-OPTION("-bind_at_load", bind__at__load, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-bundle_loader", bundle__loader, Separate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-bundle", bundle, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-b", b, JoinedOrSeparate, INVALID, INVALID, "u", 0, 0, 0)
-OPTION("-client_name", client__name, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-combine", combine, Flag, INVALID, INVALID, "du", 0, 0, 0)
-OPTION("-compatibility_version", compatibility__version, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-coverage", coverage, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-cpp-precomp", cpp_precomp, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-current_version", current__version, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-c", c, Flag, INVALID, INVALID, "d", 0,
+OPTION("-X", X_Flag, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-X", X_Joined, Joined, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-Z", Z_Flag, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-Z", Z_Joined, Joined, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-all_load", all__load, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-allowable_client", allowable__client, Separate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-ansi", ansi, Flag, a_Group, INVALID, 0, 0, 0, 0)
+OPTION("-arch_errors_fatal", arch__errors__fatal, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-arch", arch, Separate, INVALID, INVALID, DriverOption, 0, 0, 0)
+OPTION("-a", a, Joined, a_Group, INVALID, 0, 0, 0, 0)
+OPTION("-bind_at_load", bind__at__load, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-bundle_loader", bundle__loader, Separate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-bundle", bundle, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-b", b, JoinedOrSeparate, INVALID, INVALID, Unsupported, 0, 0, 0)
+OPTION("-client_name", client__name, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-combine", combine, Flag, INVALID, INVALID, DriverOption | Unsupported, 0, 0, 0)
+OPTION("-compatibility_version", compatibility__version, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-coverage", coverage, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-cpp-precomp", cpp_precomp, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-current_version", current__version, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-c", c, Flag, INVALID, INVALID, DriverOption, 0,
"Only run preprocess, compile, and assemble steps", 0)
-OPTION("-dA", dA, Flag, d_Group, INVALID, "", 0, 0, 0)
-OPTION("-dD", dD, Flag, d_Group, INVALID, "", 0, 0, 0)
-OPTION("-dM", dM, Flag, d_Group, INVALID, "", 0, 0, 0)
-OPTION("-dead_strip", dead__strip, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dependency-file", dependency_file, Separate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dumpmachine", dumpmachine, Flag, INVALID, INVALID, "u", 0, 0, 0)
-OPTION("-dumpspecs", dumpspecs, Flag, INVALID, INVALID, "u", 0, 0, 0)
-OPTION("-dumpversion", dumpversion, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dylib_file", dylib__file, Separate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dylinker_install_name", dylinker__install__name, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dylinker", dylinker, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dynamiclib", dynamiclib, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-dynamic", dynamic, Flag, INVALID, INVALID, "q", 0, 0, 0)
-OPTION("-d", d_Flag, Flag, d_Group, INVALID, "", 0, 0, 0)
-OPTION("-d", d_Joined, Joined, d_Group, INVALID, "", 0, 0, 0)
-OPTION("-emit-ast", emit_ast, Flag, INVALID, INVALID, "", 0,
+OPTION("-dA", dA, Flag, d_Group, INVALID, 0, 0, 0, 0)
+OPTION("-dD", dD, Flag, d_Group, INVALID, 0, 0, 0, 0)
+OPTION("-dM", dM, Flag, d_Group, INVALID, 0, 0, 0, 0)
+OPTION("-dead_strip", dead__strip, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dependency-file", dependency_file, Separate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dumpmachine", dumpmachine, Flag, INVALID, INVALID, Unsupported, 0, 0, 0)
+OPTION("-dumpspecs", dumpspecs, Flag, INVALID, INVALID, Unsupported, 0, 0, 0)
+OPTION("-dumpversion", dumpversion, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dylib_file", dylib__file, Separate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dylinker_install_name", dylinker__install__name, JoinedOrSeparate, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dylinker", dylinker, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dynamiclib", dynamiclib, Flag, INVALID, INVALID, 0, 0, 0, 0)
+OPTION("-dynamic", dynamic, Flag, INVALID, INVALID, NoArgumentUnused, 0, 0, 0)
+OPTION("-d", d_Flag, Flag, d_Group, INVALID, 0, 0, 0, 0)
+OPTION("-d", d_Joined, Joined, d_Group, INVALID, 0, 0, 0, 0)
+OPTION("-emit-ast", emit_ast, Flag, INVALID, INVALID, 0, 0,
"Emit Clang AST files for source inputs", 0)
-OPTION("-emit-llvm", emit_llvm, Flag, INVALID, INVALID, "", 0,
+OPTION("-emit-llvm", emit_llvm, Flag, INVALID, INVALID, 0, 0,
"Use the LLVM representation for assembler and object files", 0)
-OPTION("-exported_symbols_list", exported__symbols__list, Separate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-e", e, JoinedOrSeparate, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-fPIC", fPIC, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fPIE", fPIE, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fapple-kext", fapple_kext, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fasm-blocks", fasm_blocks, Flag, clang_ignored_f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fastcp", fastcp, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fastf", fastf, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fast", fast, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fasynchronous-unwind-tables", fasynchronous_unwind_tables, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fblock-introspection", fblock_introspection, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fblocks", fblocks, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fbootclasspath=", fbootclasspath_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fbuiltin-strcat", fbuiltin_strcat, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fbuiltin-strcpy", fbuiltin_strcpy, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fbuiltin", fbuiltin, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fclasspath=", fclasspath_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fcolor-diagnostics", fcolor_diagnostics, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fcommon", fcommon, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fcompile-resource=", fcompile_resource_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fconstant-cfstrings", fconstant_cfstrings, Flag, clang_ignored_f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fconstant-string-class=", fconstant_string_class_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fcreate-profile", fcreate_profile, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fdebug-pass-arguments", fdebug_pass_arguments, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fdebug-pass-structure", fdebug_pass_structure, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fdiagnostics-fixit-info", fdiagnostics_fixit_info, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fdiagnostics-print-source-range-info", fdiagnostics_print_source_range_info, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fdiagnostics-show-option", fdiagnostics_show_option, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fdollars-in-identifiers", fdollars_in_identifiers, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-feliminate-unused-debug-symbols", feliminate_unused_debug_symbols, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-femit-all-decls", femit_all_decls, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fencoding=", fencoding_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fexceptions", fexceptions, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fextdirs=", fextdirs_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-ffreestanding", ffreestanding, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fgnu-runtime", fgnu_runtime, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fheinous-gnu-extensions", fheinous_gnu_extensions, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-filelist", filelist, Separate, INVALID, INVALID, "l", 0, 0, 0)
-OPTION("-findirect-virtual-calls", findirect_virtual_calls, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-finline-functions", finline_functions, Flag, clang_ignored_f_Group, INVALID, "", 0, 0, 0)
-OPTION("-finline", finline, Flag, clang_ignored_f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fkeep-inline-functions", fkeep_inline_functions, Flag, clang_ignored_f_Group, INVALID, "", 0, 0, 0)
-OPTION("-flat_namespace", flat__namespace, Flag, INVALID, INVALID, "", 0, 0, 0)
-OPTION("-flax-vector-conversions", flax_vector_conversions, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-flimited-precision=", flimited_precision_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-flto", flto, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fmath-errno", fmath_errno, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fmerge-all-constants", fmerge_all_constants, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fmessage-length=", fmessage_length_EQ, Joined, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fms-extensions", fms_extensions, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fmudflapth", fmudflapth, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fmudflap", fmudflap, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fnested-functions", fnested_functions, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fnext-runtime", fnext_runtime, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-asynchronous-unwind-tables", fno_asynchronous_unwind_tables, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-blocks", fno_blocks, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-builtin-strcat", fno_builtin_strcat, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-builtin-strcpy", fno_builtin_strcpy, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-builtin", fno_builtin, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-caret-diagnostics", fno_caret_diagnostics, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-color-diagnostics", fno_color_diagnostics, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-common", fno_common, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-constant-cfstrings", fno_constant_cfstrings, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-diagnostics-fixit-info", fno_diagnostics_fixit_info, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-diagnostics-show-option", fno_diagnostics_show_option, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-dollars-in-identifiers", fno_dollars_in_identifiers, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-eliminate-unused-debug-symbols", fno_eliminate_unused_debug_symbols, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-exceptions", fno_exceptions, Flag, f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-inline-functions", fno_inline_functions, Flag, clang_ignored_f_Group, INVALID, "", 0, 0, 0)
-OPTION("-fno-inline", fno_inline, Flag, clang_ignored_f_Group, INVALID, "", 0, 0,