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