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:
parent
1431025be1
commit
18d768e3bc
3
test/tools/llvm-xray/X86/no-subcommand-noassert.txt
Normal file
3
test/tools/llvm-xray/X86/no-subcommand-noassert.txt
Normal file
@ -0,0 +1,3 @@
|
||||
; RUN: llvm-xray | FileCheck %s
|
||||
|
||||
; CHECK: OVERVIEW: XRay Tools
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user