[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 8/8] stdio: port --enable-gcc-warnings to clang
From: |
Paul Eggert |
Subject: |
Re: [PATCH 8/8] stdio: port --enable-gcc-warnings to clang |
Date: |
Wed, 15 May 2013 20:50:44 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 |
On 05/15/2013 04:57 AM, Eric Blake wrote:
> Does clang support push/pop of pragmas?
Yes. Unfortunately they don't work here, even with _Pragma.
> Can it be silenced by adding a
> cast to void instead of globally turning off this normally-useful warning?
Unfortunately no.
>> +# 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().
I think that's because in other places we simply do a (void) fwrite (...),
which pacifies 'clang'. But here we can't do that, since the replacement
fwrite must return a value. None of the obvious workarounds worked for me.
But I did think of a workaround that wasn't obvious (at least, not to me),
and installed it. I'll follow up with a message
"[PATCH 1/4] stdio: use __REDIRECT for fwrite, fwrite_unlocked"
about that. Three other clang-related patches will follow.
- Re: [libvirt] [PATCH 4/6] Correctly detect warning flags with clang, Eric Blake, 2013/05/13
- Re: [libvirt] [PATCH 4/6] Correctly detect warning flags with clang, Paul Eggert, 2013/05/15
- [PATCH 2/8] inttostr: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 3/8] malloca: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 4/8] mbsstr: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 5/8] memchr2: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 6/8] obstack: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 7/8] sig2str: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 8/8] stdio: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 2/4] thread: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 3/4] getaddrinfo-tests: port --enable-gcc-warnings to clang, Paul Eggert, 2013/05/15
- [PATCH 4/4] spawn-tests, sys_socket-tests, sys_wait-tests: port to clang, Paul Eggert, 2013/05/15