Re: [PATCH] build: work around gcc 6.0 warnings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 25.02.2016 14:48, Eric Blake wrote:
> On 02/25/2016 04:15 AM, Pavel Hrdina wrote:
>> 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.
> 
> Killing it for the entire tree seems like a rather heavy hammer.  I'd
> rather just add #pragma push/pop to ignore the warning around the few
> places that it incorrectly triggers, leaving the rest of the tree still
> protected (as it does catch real bugs, when we aren't dealing with
> sometimes-aliased values coming from headers).

Since not everybody is switching to gcc 6.0 (I'm stuck with 4.9.3 for a
while now) we are still going to be able to catch those errors.
Moreover, if the gcc bug is ever fixed we don't need to undo those pragmas.

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]