On Wed, Feb 24, 2016 at 02:29:58PM -0700, Eric Blake wrote:
gcc 6.0 added an annoying warning:
fdstream.c: In function 'virFDStreamWrite':
fdstream.c:390:29: error: logical 'or' of equal expressions [-Werror=logical-op]
if (errno == EAGAIN || errno == EWOULDBLOCK) {
^~
fdstream.c: In function 'virFDStreamRead':
fdstream.c:440:29: error: logical 'or' of equal expressions [-Werror=logical-op]
if (errno == EAGAIN || errno == EWOULDBLOCK) {
^~
This makes it impossible to build out-of-the-box on rawhide,
and we aren't guaranteed that the gcc bug will be fixed in a
timely manner:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602
So work around it by further complicating the logic to thwart the
compiler.
Personally I don't like this approach. Why don't we take that 6 line reproducer
from GCC BZ and create a m4 macro that will detect that bug in GCC and turn off
the logical-op check? For me this solution is much cleaner than introducing
some ugly workaround in our code just because GCC has a bug.
Pavel