(adding <bug-standa...@gnu.org> to the To: list)

Here is a proposed patch that follows up on the discussion about
"(void) fwrite (...)"  and "ignore_value (fwrite (...))" that is rooted at
<http://lists.gnu.org/archive/html/bug-gnulib/2010-08/msg00233.html>.
This doesn't capture all the comments there (as they don't all agree),
but it is an attempt to modernize the discussion a bit, to fix
a technical problem with NULL that Bruno Haible pointed out, and to
capture what I hope is a reasonable consensus for the intent of
this part of the standards

*** old/standards.texi  Tue Aug 24 10:42:55 2010
--- new/standards.texi  Mon Aug 30 16:50:16 2010
***************
*** 2750,2759 ****
    fatal ("virtual memory exhausted");
  @end example
  
  @pindex lint
! Don't make the program ugly to placate @code{lint}.  Please don't insert any
! casts to @code{void}.  Zero without a cast is perfectly fine as a null
! pointer constant, except when calling a varargs function.
  
  @node Names
  @section Naming Variables, Functions, and Files
--- 2750,2766 ----
    fatal ("virtual memory exhausted");
  @end example
  
+ @pindex gcc
  @pindex lint
! @pindex valgrind
! Don't make the program ugly to placate @code{gcc -Wall}, @code{lint},
! @code{valgrind}, or other software analysis tools.  These tools can
! help find bugs, but they can also generate false alarms for constructs
! that they incorrectly consider to be suspicious.  Although we want
! useful warnings and don't want useless ones, we also want code that is
! as readable as possible and is not cluttered with unnecessary casts or
! wrappers.  For example, in C, please don't insert casts to @code{void}
! or replace @code{0} with @code{NULL} merely to pacify a lint checker.
  
  @node Names
  @section Naming Variables, Functions, and Files


Reply via email to