On 05/15/2013 01:39 AM, Paul Eggert wrote: > * lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely, > since the GCC workaround for fwrite does not pacify clang. > --- > ChangeLog | 4 ++++ > lib/stdio.in.h | 11 +++++++---- > 2 files changed, 11 insertions(+), 4 deletions(-) >
> -# undef fwrite > -# define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; }) > +# ifdef __clang__ > +# pragma clang diagnostic ignored "-Wunused-value" Does clang support push/pop of pragmas? Can it be silenced by adding a cast to void instead of globally turning off this normally-useful warning? > +# elif 3 < __GNUC__ + (4 <= __GNUC_MINOR__) > +# undef fwrite > +# define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; }) Here, we were just inlining the gcc version if "ignore-value.h" (so that our replacement <stdio.h> doesn't have to drag in the actual ignore-value.h header); but the non-gcc counterpart is a cast to void, and clang doesn't seem to be issuing unused result warnings for other uses of ignore_value(). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature