Richard Henderson <[email protected]> writes:
> From: Philippe Mathieu-Daudé <[email protected]> > > 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 <[email protected]> > Buglink: https://bugs.launchpad.net/bugs/1881004 > Reviewed-by: Thomas Huth <[email protected]> > Reviewed-by: Eric Blake <[email protected]> > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > Message-Id: <[email protected]> > Signed-off-by: Richard Henderson <[email protected]> Reviewed-by: Alex Bennée <[email protected]> -- Alex Bennée
