[llvm][tools] Hide unrelated llvm-cfi-verify options

Differential Revision: https://reviews.llvm.org/D106055
This commit is contained in:
Timm Bäder 2021-07-16 10:17:41 +02:00
parent d4960d7c98
commit b97b48f662
2 changed files with 17 additions and 6 deletions

View File

@ -0,0 +1,7 @@
# RUN: llvm-cfi-verify --help | FileCheck %s --check-prefix HELP --implicit-check-not='{{[Oo]}}ptions:'
# HELP: OVERVIEW:
# HELP: USAGE:
# HELP: CFI Verify Options:
# HELP: Color Options:
# HELP: Generic Options:

View File

@ -32,21 +32,24 @@ using namespace llvm;
using namespace llvm::object; using namespace llvm::object;
using namespace llvm::cfi_verify; using namespace llvm::cfi_verify;
static cl::OptionCategory CFIVerifyCategory("CFI Verify Options");
cl::opt<std::string> InputFilename(cl::Positional, cl::desc("<input file>"), cl::opt<std::string> InputFilename(cl::Positional, cl::desc("<input file>"),
cl::Required); cl::Required, cl::cat(CFIVerifyCategory));
cl::opt<std::string> BlacklistFilename(cl::Positional, cl::opt<std::string> BlacklistFilename(cl::Positional,
cl::desc("[blacklist file]"), cl::desc("[blacklist file]"),
cl::init("-")); cl::init("-"),
cl::cat(CFIVerifyCategory));
cl::opt<bool> PrintGraphs( cl::opt<bool> PrintGraphs(
"print-graphs", "print-graphs",
cl::desc("Print graphs around indirect CF instructions in DOT format."), cl::desc("Print graphs around indirect CF instructions in DOT format."),
cl::init(false)); cl::init(false), cl::cat(CFIVerifyCategory));
cl::opt<unsigned> PrintBlameContext( cl::opt<unsigned> PrintBlameContext(
"blame-context", "blame-context",
cl::desc("Print the blame context (if possible) for BAD instructions. This " cl::desc("Print the blame context (if possible) for BAD instructions. This "
"specifies the number of lines of context to include, where zero " "specifies the number of lines of context to include, where zero "
"disables this feature."), "disables this feature."),
cl::init(0)); cl::init(0), cl::cat(CFIVerifyCategory));
cl::opt<unsigned> PrintBlameContextAll( cl::opt<unsigned> PrintBlameContextAll(
"blame-context-all", "blame-context-all",
cl::desc("Prints the blame context (if possible) for ALL instructions. " cl::desc("Prints the blame context (if possible) for ALL instructions. "
@ -54,9 +57,9 @@ cl::opt<unsigned> PrintBlameContextAll(
"instructions (see --blame-context). If --blame-context is " "instructions (see --blame-context). If --blame-context is "
"unspecified, it prints this number of contextual lines for BAD " "unspecified, it prints this number of contextual lines for BAD "
"instructions as well."), "instructions as well."),
cl::init(0)); cl::init(0), cl::cat(CFIVerifyCategory));
cl::opt<bool> Summarize("summarize", cl::desc("Print the summary only."), cl::opt<bool> Summarize("summarize", cl::desc("Print the summary only."),
cl::init(false)); cl::init(false), cl::cat(CFIVerifyCategory));
ExitOnError ExitOnErr; ExitOnError ExitOnErr;
@ -245,6 +248,7 @@ printIndirectCFInstructions(FileAnalysis &Analysis,
} }
int main(int argc, char **argv) { int main(int argc, char **argv) {
cl::HideUnrelatedOptions({&CFIVerifyCategory, &getColorCategory()});
cl::ParseCommandLineOptions( cl::ParseCommandLineOptions(
argc, argv, argc, argv,
"Identifies whether Control Flow Integrity protects all indirect control " "Identifies whether Control Flow Integrity protects all indirect control "