Show 26 quoted lines
> Today's seen branch fails to build (with DEVELOPER=1), like so:
>
> CC builtin/name-rev.o
> builtin/name-rev.c: In function ‘cmd_format_rev’:
> builtin/name-rev.c:885:28: error: ‘commit’ may be used uninitialized [-Werror=maybe-uninitialized]
> 885 | if (!commit) {
> | ^
> builtin/name-rev.c:867:40: note: ‘commit’ was declared here
> 867 | struct commit *commit;
> | ^~~~~~
> cc1: all warnings being treated as errors
> make: *** [Makefile:2932: builtin/name-rev.o] Error 1
> ...
> diff --git a/builtin/name-rev.c b/builtin/name-rev.c
> index b941e93834..5b7f7a00e5 100644
> --- a/builtin/name-rev.c
> +++ b/builtin/name-rev.c
> @@ -882,6 +882,8 @@ int cmd_format_rev(int argc,
> peeled = deref_tag(the_repository, object, scratch_buf.buf, 0);
> if (peeled && peeled->type == OBJ_COMMIT)
> commit = (struct commit *)peeled;
> + else
> + commit = NULL;
> if (!commit) {
> fprintf(stderr, "Could not get commit for %s. Skipping.\n",
> *argv);Why not
if (peeled && peeled->type == OBJ_COMMIT) {
commit = (struct commit *)peeled;
} else {
fprintf(stderr, "... skipping ...");
continue;
} get_format_rev(commit, &format_pp, &scratch);
or even
if (!peeled || peeled->type != OBJ_COMMIT) {
fprintf(stderr, "... skipping ...");
continue;
} get_format_rev((struct commit *)peeled->type,
&format_pp, &scratch);
and dropping the variable "struct commit *commit" altogether?