diff options
author | Richard Trieu <rtrieu@google.com> | 2019-10-19 01:47:49 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2019-10-19 01:47:49 +0000 |
commit | ae3e9c83d470f2f2c4fa84e66c0451abcbfb3598 (patch) | |
tree | e40f515caace6e493e49953ad72cd3ca630f14d4 /include/clang/Edit | |
parent | 56ddb2a69c92a417a93e8ccf3f8fe1ce047c78e3 (diff) | |
download | clang-ae3e9c83d470f2f2c4fa84e66c0451abcbfb3598.tar.gz |
Add -Wbitwise-conditional-parentheses to warn on mixing '|' and '&' with "?:"
Extend -Wparentheses to cover mixing bitwise-and and bitwise-or with the
conditional operator. There's two main cases seen with this:
unsigned bits1 = 0xf0 | cond ? 0x4 : 0x1;
unsigned bits2 = cond1 ? 0xf0 : 0x10 | cond2 ? 0x5 : 0x2;
// Intended order of evaluation:
unsigned bits1 = 0xf0 | (cond ? 0x4 : 0x1);
unsigned bits2 = (cond1 ? 0xf0 : 0x10) | (cond2 ? 0x5 : 0x2);
// Actual order of evaluation:
unsigned bits1 = (0xf0 | cond) ? 0x4 : 0x1;
unsigned bits2 = cond1 ? 0xf0 : ((0x10 | cond2) ? 0x5 : 0x2);
Differential Revision: https://reviews.llvm.org/D66043
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@375326 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Edit')
0 files changed, 0 insertions, 0 deletions