run-command: prettify -D_FORTIFY_SOURCE workaround
authorJonathan Nieder <jrnieder@gmail.com>
Wed, 16 Mar 2011 07:32:39 +0000 (02:32 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Mar 2011 22:32:43 +0000 (15:32 -0700)
commitebec842773932e6f853acac70c80f84209b5f83e
treeba7c1db71216da27e655c1036bcd99a11e1a7650
parenta3ca9b0fbe21d7a2525877fe0c008b61c56f7104
run-command: prettify -D_FORTIFY_SOURCE workaround

Current gcc + glibc with -D_FORTIFY_SOURCE try very aggressively to
protect against a programming style which uses write(...) without
checking the return value for errors.  Even the usual hint of casting
to (void) does not suppress the warning.

Sometimes when there is an output error, especially right before exit,
there really is nothing to be done.  The obvious solution, adopted in
v1.7.0.3~20^2 (run-command.c: fix build warnings on Ubuntu,
2010-01-30), is to save the return value to a dummy variable:

ssize_t dummy;
dummy = write(...);

But that (1) is ugly and (2) triggers -Wunused-but-set-variable
warnings with gcc-4.6 -Wall, so we are not much better off than when
we started.

Instead, use an "if" statement with an empty body to make the intent
clear.

if (write(...))
; /* yes, yes, there was an error. */

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
run-command.c