include "llvm/Option/OptParser.td" multiclass Eq<string name> { def NAME: Separate<["--", "-"], name>; def NAME # _eq: Joined<["--", "-"], name # "=">, Alias<!cast<Separate>(NAME)>; } def help : Flag<["-", "--"], "help">; defm output : Eq<"o">, MetaVarName<"output">, HelpText<"Write output to <file>">; def strip_all : Flag<["-", "--"], "strip-all">, HelpText<"Remove non-allocated sections other than .gnu.warning* sections">; def strip_debug : Flag<["-", "--"], "strip-debug">, HelpText<"Remove debugging symbols only">; def d : Flag<["-"], "d">, Alias<strip_debug>; def g : Flag<["-"], "g">, Alias<strip_debug>; def S : Flag<["-"], "S">, Alias<strip_debug>; defm remove_section : Eq<"remove-section">, MetaVarName<"section">, HelpText<"Remove <section>">; def R : JoinedOrSeparate<["-"], "R">, Alias<remove_section>; defm keep_symbol : Eq<"keep-symbol">, MetaVarName<"symbol">, HelpText<"Do not remove symbol <symbol>">; def K : JoinedOrSeparate<["-"], "K">, Alias<keep_symbol>; def discard_all : Flag<["-", "--"], "discard-all">, HelpText<"Remove all local symbols except file and section symbols">; def x : Flag<["-"], "x">, Alias<discard_all>; def strip_unneeded : Flag<["-", "--"], "strip-unneeded">, HelpText<"Remove all symbols not needed by relocations">;