Message ID | 20200824102914.105619-1-dgilbert@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qemu-io-cmds: Simplify help_oneline | expand |
Am 24.08.2020 um 12:29 hat Dr. David Alan Gilbert (git) geschrieben: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > help_oneline is declared and starts as: > > static void help_oneline(const char *cmd, const cmdinfo_t *ct) > { > if (cmd) { > printf("%s ", cmd); > } else { > printf("%s ", ct->name); > if (ct->altname) { > printf("(or %s) ", ct->altname); > } > } > > However, there are only two routes to help_oneline being called: > > help_f -> help_all -> help_oneline(ct->name, ct) > > help_f -> help_onecmd(argv[1], ct) > > In the first case, 'cmd' and 'ct->name' are the same thing, > so it's impossible for the if (cmd) to be false and then validly > print ct->name - this is upsetting gcc > ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96739 ) > > In the second case, cmd is argv[1] and we know we've got argv[1] > so again (cmd) is non-NULL. > > Simplify help_oneline by just printing cmd. > (Also strengthen argc check just to be pedantic) > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Thanks, applied to the block branch. Kevin
diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c index baeae86d8c..4153f1c0b0 100644 --- a/qemu-io-cmds.c +++ b/qemu-io-cmds.c @@ -2383,14 +2383,7 @@ static const cmdinfo_t sleep_cmd = { static void help_oneline(const char *cmd, const cmdinfo_t *ct) { - if (cmd) { - printf("%s ", cmd); - } else { - printf("%s ", ct->name); - if (ct->altname) { - printf("(or %s) ", ct->altname); - } - } + printf("%s ", cmd); if (ct->args) { printf("%s ", ct->args); @@ -2420,7 +2413,7 @@ static int help_f(BlockBackend *blk, int argc, char **argv) { const cmdinfo_t *ct; - if (argc == 1) { + if (argc < 2) { help_all(); return 0; }