Am 24.08.2020 um 12:29 hat Dr. David Alan Gilbert (git) geschrieben:
> From: "Dr. David Alan Gilbert" <dgilb...@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 <dgilb...@redhat.com>
Thanks, applied to the block branch.
Kevin