Richard Henderson <richard.hender...@linaro.org> writes:
> From: Philippe Mathieu-Daudé <phi...@redhat.com> > > When building with clang version 10.0.0-4ubuntu1, we get: > > CC lm32-softmmu/fpu/softfloat.o > fpu/softfloat.c:3365:13: error: bitwise negation of a boolean expression; > did you mean logical negation? [-Werror,-Wbool-operation] > absZ &= ~ ( ( ( roundBits ^ 0x40 ) == 0 ) & roundNearestEven ); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > fpu/softfloat.c:3423:18: error: bitwise negation of a boolean expression; > did you mean logical negation? [-Werror,-Wbool-operation] > absZ0 &= ~ ( ( (uint64_t) ( absZ1<<1 ) == 0 ) & roundNearestEven ); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > ... > > fpu/softfloat.c:4273:18: error: bitwise negation of a boolean expression; > did you mean logical negation? [-Werror,-Wbool-operation] > zSig1 &= ~ ( ( zSig2 + zSig2 == 0 ) & roundNearestEven ); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Fix by rewriting the fishy bitwise AND of two bools as an int. > > Suggested-by: Eric Blake <ebl...@redhat.com> > Buglink: https://bugs.launchpad.net/bugs/1881004 > Reviewed-by: Thomas Huth <th...@redhat.com> > Reviewed-by: Eric Blake <ebl...@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Message-Id: <20200528155420.9802-1-phi...@redhat.com> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> -- Alex Bennée