On Wed, Oct 24, 2018 at 11:01:54AM +0200, Johannes Schindelin wrote: > > @@ -910,6 +921,7 @@ int start_command(struct child_process *cmd) > > } > > #endif > > > > +end_of_spawn: > > Sadly, this fails to build on Windows: > > run-command.c: In function 'start_command': > run-command.c:924:1: error: label 'end_of_spawn' defined but not used [-Werror=unused-label] > end_of_spawn: > ^~~~~~~~~~~~ Doh. I didn't think of that. > How about squashing in this diff: > > -- snip -- > diff --git a/run-command.c b/run-command.c > index 639ea5ac3366..3f03795a5995 100644 > --- a/run-command.c > +++ b/run-command.c > @@ -918,6 +918,8 @@ int start_command(struct child_process *cmd) > close(fhout); > if (fherr != 2) > close(fherr); > + > + goto end_of_spawn; > } > #endif > > -- snap -- > > I can confirm that the result compiles and passes t0061. That leaves the Windows side of the #else with a funny, useless goto (and without even a matching useless one on the Unix side). Let's put it instead inside the half of the #if that actually uses it. Like so (actually courtesy of Jonathan Nieder): diff --git a/run-command.c b/run-command.c index 639ea5ac33..d679cc267c 100644 --- a/run-command.c +++ b/run-command.c @@ -868,6 +868,8 @@ int start_command(struct child_process *cmd) argv_array_clear(&argv); free(childenv); } +end_of_spawn: + #else { int fhin = 0, fhout = 1, fherr = 2; @@ -921,7 +923,6 @@ int start_command(struct child_process *cmd) } #endif -end_of_spawn: if (cmd->pid < 0) { if (need_in) close_pair(fdin); Thanks for your review! -Peff