diff options
author | Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> | 2017-01-12 11:39:04 +0000 |
---|---|---|
committer | Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> | 2017-01-12 11:39:04 +0000 |
commit | c9a8a6c03005a38de29d947e3cf964fa31b400fe (patch) | |
tree | d4f5ef41fb29af80d6fd9c07627040972bc0c202 /clang/lib/Lex/ModuleMap.cpp | |
parent | eff6e83f23d4bfafbf9a812f2bbabe349adf1e3d (diff) | |
download | llvm-c9a8a6c03005a38de29d947e3cf964fa31b400fe.zip llvm-c9a8a6c03005a38de29d947e3cf964fa31b400fe.tar.gz llvm-c9a8a6c03005a38de29d947e3cf964fa31b400fe.tar.bz2 |
kmp_affinity: Fix check if specific bit is set
Clang 4.0 trunk warns:
warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
This points to a potential bug if the code really wants to check if the single
bit is not set: If for example (buf.edx >> 9) = 2 (has any bit set except the
least significant one), 'logical not' will return 0 which stays 0 after the
'bitwise and'.
To do this correctly we first need to evaluate the 'bitwise and'. In that case
it returns 2 & 1 = 0 which after the 'logical not' evaluates to 1.
Differential Revision: https://reviews.llvm.org/D28599
llvm-svn: 291764
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions