1include "llvm/Option/OptParser.td" 2 3class F<string name, string help> : Flag<["-", "--"], name>, HelpText<help>; 4 5multiclass B<string name, string help1, string help2> { 6 def NAME: Flag<["-", "--"], name>, HelpText<help1>; 7 def no_ # NAME: Flag<["-", "--"], "no-" # name>, HelpText<help2>; 8} 9 10multiclass Eq<string name, string help> { 11 def NAME #_EQ : Joined<["-", "--"], name #"=">, 12 HelpText<help>; 13 def : Separate<["-", "--"], name>, Alias<!cast<Joined>(NAME #_EQ)>; 14} 15 16def generic_grp : OptionGroup<"Genric Options">, HelpText<"Generic Options">; 17def help : F<"help", "Display this help">, Group<generic_grp>; 18def : Flag<["-"], "h">, Alias<help>, HelpText<"Alias for --help">, Group<generic_grp>; 19def version : F<"version", "Display the version">, Group<generic_grp>; 20def : Flag<["-"], "v">, Alias<version>, HelpText<"Alias for --version">, Group<generic_grp>; 21 22def action_grp : OptionGroup<"Action">, HelpText<"Action (required)">; 23def print : F<"print", "Print coverage addresses">, 24 Group<action_grp>; 25def printCoveragePcs : F<"print-coverage-pcs", "Print coverage instrumentation points addresses.">, 26 Group<action_grp>; 27def coveredFunctions : F<"covered-functions", "Print all covered funcions.">, 28 Group<action_grp>; 29def notCoveredFunctions : F<"not-covered-functions", "Print all not covered funcions.">, 30 Group<action_grp>; 31def printCoverageStats : F<"print-coverage-stats", "Print coverage statistics.">, 32 Group<action_grp>; 33def htmlReport : F<"html-report", "REMOVED. Use -symbolize & coverage-report-server.py.">, 34 Group<action_grp>; 35def symbolize : F<"symbolize", "Produces a symbolized JSON report from binary report.">, 36 Group<action_grp>; 37def merge : F<"merge", "Merges reports.">, 38 Group<action_grp>; 39 40defm demangle : B<"demangle", "Demangle function names", "Do not demangle function names">; 41defm skipDeadFiles : B<"skip-dead-files", "Do not list dead source files in reports", 42 "List dead source files in reports">; 43defm useDefaultIgnoreList : 44 B<"use_default_ignorelist", "Use the default ignore list", "Don't use the default ignore list">, 45 Flags<[HelpHidden]>; 46 47// Compatibility aliases 48def : Flag<["-"], "demangle=0">, Alias<no_demangle>, HelpText<"Alias for --no-demangle">; 49def : Flag<["-"], "skip-dead-files=0">, Alias<no_skipDeadFiles>, HelpText<"Alias for --no-skip-dead-files">; 50def : Flag<["-"], "use_default_ignorelist=0">, Alias<no_useDefaultIgnoreList>, HelpText<"Alias for --no-use_default_ignore_list">; 51 52defm stripPathPrefix 53 : Eq<"strip_path_prefix", "Strip this prefix from files paths in reports">, 54 MetaVarName<"<string>">; 55 56defm ignorelist 57 : Eq<"ignorelist", "Ignorelist file (sanitizer ignorelist format)">, 58 MetaVarName<"<string>">; 59