diff --git a/llvm/test/tools/llvm-bcanalyzer/help.test b/llvm/test/tools/llvm-bcanalyzer/help.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-bcanalyzer/help.test @@ -0,0 +1,7 @@ +# RUN: llvm-bcanalyzer --help | FileCheck %s --check-prefix HELP --implicit-check-not='{{[Oo]}}ptions:' + +# HELP: OVERVIEW: llvm-bcanalyzer file analyzer +# HELP: USAGE +# HELP: BC Analyzer Options +# HELP: Color Options +# HELP: Generic Options diff --git a/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp --- a/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp +++ b/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp @@ -32,37 +32,48 @@ #include "llvm/Support/Error.h" #include "llvm/Support/InitLLVM.h" #include "llvm/Support/MemoryBuffer.h" +#include "llvm/Support/WithColor.h" #include "llvm/Support/raw_ostream.h" #include using namespace llvm; -static cl::opt - InputFilename(cl::Positional, cl::desc(""), cl::init("-")); +static cl::OptionCategory BCAnalyzerCategory("BC Analyzer Options"); + +static cl::opt InputFilename(cl::Positional, + cl::desc(""), + cl::init("-"), + cl::cat(BCAnalyzerCategory)); -static cl::opt Dump("dump", cl::desc("Dump low level bitcode trace")); +static cl::opt Dump("dump", cl::desc("Dump low level bitcode trace"), + cl::cat(BCAnalyzerCategory)); //===----------------------------------------------------------------------===// // Bitcode specific analysis. //===----------------------------------------------------------------------===// static cl::opt NoHistogram("disable-histogram", - cl::desc("Do not print per-code histogram")); + cl::desc("Do not print per-code histogram"), + cl::cat(BCAnalyzerCategory)); static cl::opt NonSymbolic("non-symbolic", cl::desc("Emit numeric info in dump even if" - " symbolic info is available")); + " symbolic info is available"), + cl::cat(BCAnalyzerCategory)); static cl::opt BlockInfoFilename("block-info", - cl::desc("Use the BLOCK_INFO from the given file")); + cl::desc("Use the BLOCK_INFO from the given file"), + cl::cat(BCAnalyzerCategory)); static cl::opt ShowBinaryBlobs("show-binary-blobs", - cl::desc("Print binary blobs using hex escapes")); + cl::desc("Print binary blobs using hex escapes"), + cl::cat(BCAnalyzerCategory)); static cl::opt CheckHash( "check-hash", - cl::desc("Check module hash using the argument as a string table")); + cl::desc("Check module hash using the argument as a string table"), + cl::cat(BCAnalyzerCategory)); static Error reportError(StringRef Message) { return createStringError(std::errc::illegal_byte_sequence, Message.data()); @@ -85,6 +96,8 @@ int main(int argc, char **argv) { InitLLVM X(argc, argv); + + cl::HideUnrelatedOptions({&BCAnalyzerCategory, &ColorCategory}); cl::ParseCommandLineOptions(argc, argv, "llvm-bcanalyzer file analyzer\n"); ExitOnError ExitOnErr("llvm-bcanalyzer: ");