From: Kristoffer Haugsbakk Date: Mon, 04 May 2026 08:55:16 GMT Subject: Re: [PATCH] name-rev: fix an 'may be used uninitialized' error Message-ID: <592c01fd-1e1b-4850-adf1-77fffdf71321@app.fastmail.com> In-Reply-To: Hi Junio On Mon, May 4, 2026, at 03:13, Junio C Hamano wrote: > Ramsay Jones writes: > >> 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? I see that you added this as one of two “SQUASH???” commits on your kh/name-rev-custom-format branch. I will squash both of them in for the next round. Thanks to both of you.