I have been working on several patches to improve Clang warnings. The changes touch warnings that are in the default warning set or in common build configurations. I am posting these patches so interested people can test the warning behavior before they committed. In my testing, these warnings have caught many interesting and hard to find bugs already.
I’ve combined all the patches into one for easy testing:
Individual patches, spread out:
https://reviews.llvm.org/D66043 - New precedence warning for mixing bitwise and/or with conditional operator
https://reviews.llvm.org/D66044 - -Wtautological-overlap-compare to work on negative numbers
https://reviews.llvm.org/D66045 - Better detection of same value operands for tautological warnings
https://reviews.llvm.org/D66046 - New warning -Wtautological-bitwise-compare to check for non-zero value bitwise-or in bool context
These are improvements to -Wparentheses, -Wtautological-compare, and -Wtautological-overlap-compare with new warning -Wtautological-bitwise-compare.