# HG changeset patch # User Paul Eggert # Date 1368603043 25200 # Node ID c4e1bb6e391bb716a385bb7c02674400232afd57 # Parent b5c1d4b2677e887d45f2e9c11715542c6e98f911 stdio: port --enable-gcc-warnings to clang * lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely, since the GCC workaround for fwrite does not pacify clang. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2013-05-15 Paul Eggert + stdio: port --enable-gcc-warnings to clang + * lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely, + since the GCC workaround for fwrite does not pacify clang. + sig2str: port --enable-gcc-warnings to clang * lib/sig2str.c (sig2str): Avoid warning about unused printf argument. diff --git a/lib/stdio.in.h b/lib/stdio.in.h --- a/lib/stdio.in.h +++ b/lib/stdio.in.h @@ -579,13 +579,16 @@ , which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain - versions of gcc, and is not needed for C++. */ + versions of gcc and clang, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ - && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) -# 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" +# elif 3 < __GNUC__ + (4 <= __GNUC_MINOR__) +# undef fwrite +# define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; }) +# endif # endif # endif _GL_CXXALIASWARN (fwrite);