diff options
author | Richard Trieu <rtrieu@google.com> | 2019-10-19 00:57:23 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2019-10-19 00:57:23 +0000 |
commit | 8b0d14a8f0cc085afa2a9c86c237da81c74517fc (patch) | |
tree | 10b826bafb00b240997f245466199e6350a9edd1 /clang/docs/ReleaseNotes.rst | |
parent | b081220cfd46965fa25dbf826cd3f42f4f9e54cd (diff) | |
download | bcm5719-llvm-8b0d14a8f0cc085afa2a9c86c237da81c74517fc.tar.gz bcm5719-llvm-8b0d14a8f0cc085afa2a9c86c237da81c74517fc.zip |
New tautological warning for bitwise-or with non-zero constant always true.
Taking a value and the bitwise-or it with a non-zero constant will always
result in a non-zero value. In a boolean context, this is always true.
if (x | 0x4) {} // always true, intended '&'
This patch creates a new warning group -Wtautological-bitwise-compare for this
warning. It also moves in the existing tautological bitwise comparisons into
this group. A few other changes were needed to the CFGBuilder so that all bool
contexts would be checked. The warnings in -Wtautological-bitwise-compare will
be off by default due to using the CFG.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=42666
Differential Revision: https://reviews.llvm.org/D66046
llvm-svn: 375318
Diffstat (limited to 'clang/docs/ReleaseNotes.rst')
-rw-r--r-- | clang/docs/ReleaseNotes.rst | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 37dbac30901..41dea299e6b 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -56,6 +56,11 @@ Improvements to Clang's diagnostics - -Wtautological-compare for self comparisons and -Wtautological-overlap-compare will now look through member and array access to determine if two operand expressions are the same. +- -Wtautological-bitwise-compare is a new warning group. This group has the + current warning which diagnoses the tautological comparison of a bitwise + operation and a constant. The group also has the new warning which diagnoses + when a bitwise-or with a non-negative value is converted to a bool, since + that bool will always be true. Non-comprehensive list of changes in this release ------------------------------------------------- |