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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to