1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

[XRay][tools] Handle "no subcommand" case for llvm-xray

Summary:
Currently the llvm-xray commandline tool fails to handle the case for
when no subcommand is provided in a graceful manner. This fixes that to
print the help message explaining the subcommands and the available
options.

Reviewers: pcc, pelikan

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31409

llvm-svn: 298975
This commit is contained in:
Dean Michael Berris 2017-03-29 04:55:45 +00:00
parent 1431025be1
commit 18d768e3bc
2 changed files with 12 additions and 1 deletions

View File

@ -0,0 +1,3 @@
; RUN: llvm-xray | FileCheck %s
; CHECK: OVERVIEW: XRay Tools

View File

@ -30,12 +30,20 @@ int main(int argc, char *argv[]) {
" This program consolidates multiple XRay trace "
"processing tools for convenient access.\n");
for (auto *SC : cl::getRegisteredSubcommands()) {
if (*SC)
if (*SC) {
// If no subcommand was provided, we need to explicitly check if this is
// the top-level subcommand.
if (SC == &*cl::TopLevelSubCommand) {
cl::PrintHelpMessage(false, true);
return 0;
}
if (auto C = dispatch(SC)) {
ExitOnError("llvm-xray: ")(C());
return 0;
}
}
}
// If all else fails, we still print the usage message.
cl::PrintHelpMessage(false, true);
}