Subject: Re: ignore_value vs (void) [was: [Bug-tar] bug#15970: bug#15970: Crash in gettext() after fork() on Mac OS X]

From: Eric Blake <[email-masked]>
Date: Wed, 27 Nov 2013 09:57:12 -0700

On 11/27/2013 09:53 AM, Joerg Schilling wrote:
>> The C standard does not document that '(void) write(...)' is required to
>> avoid diagnostics, so I don't see the gcc behavior as a bug (yes, it's
>> annoying behavior, but that doesn't make it incorrect behavior).
> 
> Well, there is a more than 30 year history of lint that causes 
> '(void) write(...)' to be accepted without a warning.

So? Lint is not gcc, and gcc is not lint.  Different compilers have
different capabilities at producing warnings, and you cannot expect that
something that works warning-free on one compiler will remain
warning-free on other compilers (even later versions of the same
compiler).  Warnings are an art form, and not an exact science,
precisely because the C standard does not (rather, cannot) specify them.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org