include "llvm/Option/OptParser.td" // For options whose names are multiple letters, either one dash or // two can precede the option name except those that start with 'o'. class F: Flag<["--", "-"], name>; class J: Joined<["--", "-"], name>; class S: Separate<["--", "-"], name>; multiclass Eq { def "": Separate<["--", "-"], name>; def _eq: Joined<["--", "-"], name # "=">, Alias(NAME)>; } multiclass B { def NAME: Flag<["--", "-"], name>, HelpText; def no_ # NAME: Flag<["--", "-"], "no-" # name>, HelpText; } // The follow flags are shared with the ELF linker def color_diagnostics: F<"color-diagnostics">, HelpText<"Use colors in diagnostics">; def color_diagnostics_eq: J<"color-diagnostics=">, HelpText<"Use colors in diagnostics; one of 'always', 'never', 'auto'">; defm demangle: B<"demangle", "Demangle symbol names", "Do not demangle symbol names">; def entry: S<"entry">, MetaVarName<"">, HelpText<"Name of entry point symbol">; def error_limit: J<"error-limit=">, HelpText<"Maximum number of errors to emit before stopping (0 = no limit)">; def fatal_warnings: F<"fatal-warnings">, HelpText<"Treat warnings as errors">; defm gc_sections: B<"gc-sections", "Enable garbage collection of unused sections", "Disable garbage collection of unused sections">; defm merge_data_segments: B<"merge-data-segments", "Enable merging data segments", "Disable merging data segments">; def help: F<"help">, HelpText<"Print option help">; def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"">, HelpText<"Root name of library to use">; def L: JoinedOrSeparate<["-"], "L">, MetaVarName<"">, HelpText<"Add a directory to the library search path">; def mllvm: S<"mllvm">, HelpText<"Options to pass to LLVM">; def no_threads: F<"no-threads">, HelpText<"Do not run the linker multi-threaded">; def no_color_diagnostics: F<"no-color-diagnostics">, HelpText<"Do not use colors in diagnostics">; def no_fatal_warnings: F<"no-fatal-warnings">; def o: JoinedOrSeparate<["-"], "o">, MetaVarName<"">, HelpText<"Path to file to write output">; def O: JoinedOrSeparate<["-"], "O">, HelpText<"Optimize output file size">; defm print_gc_sections: B<"print-gc-sections", "List removed unused sections", "Do not list removed unused sections">; def relocatable: F<"relocatable">, HelpText<"Create relocatable object file">; def strip_all: F<"strip-all">, HelpText<"Strip all symbols">; def strip_debug: F<"strip-debug">, HelpText<"Strip debugging information">; def threads: F<"threads">, HelpText<"Run the linker multi-threaded">; defm undefined: Eq<"undefined">, HelpText<"Force undefined symbol during linking">; def v: Flag<["-"], "v">, HelpText<"Display the version number">; def verbose: F<"verbose">, HelpText<"Verbose mode">; def version: F<"version">, HelpText<"Display the version number and exit">; def z: JoinedOrSeparate<["-"], "z">, MetaVarName<"