Message ID | 20190819043419.68223-1-natechancellor@gmail.com |
---|---|
State | Accepted |
Delegated to: | BPF Maintainers |
Headers | show |
Series | test_bpf: Fix a new clang warning about xor-ing two numbers | expand |
On 8/18/19 9:34 PM, Nathan Chancellor wrote: > r369217 in clang added a new warning about potential misuse of the xor > operator as an exponentiation operator: > > ../lib/test_bpf.c:870:13: warning: result of '10 ^ 300' is 294; did you > mean '1e300'? [-Wxor-used-as-pow] > { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, > ~~~^~~~~ > 1e300 > ../lib/test_bpf.c:870:13: note: replace expression with '0xA ^ 300' to > silence this warning > ../lib/test_bpf.c:870:31: warning: result of '10 ^ 300' is 294; did you > mean '1e300'? [-Wxor-used-as-pow] > { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, > ~~~^~~~~ > 1e300 > ../lib/test_bpf.c:870:31: note: replace expression with '0xA ^ 300' to > silence this warning > > The commit link for this new warning has some good logic behind wanting > to add it but this instance appears to be a false positive. Adopt its > suggestion to silence the warning but not change the code. According to > the differential review link in the clang commit, GCC may eventually > adopt this warning as well. > > Link: https://github.com/ClangBuiltLinux/linux/issues/643 > Link: https://github.com/llvm/llvm-project/commit/920890e26812f808a74c60ebc14cc636dac661c1 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Verified that latest trunk clang indeed has this warning, and below change indeed fixed the warning in the correct way. Acked-by: Yonghong Song <yhs@fb.com> > --- > > I highly doubt that 1e300 was intented but if it was (or something else > was), please let me know. Commit history wasn't entirely clear on why > this expression was used over just a raw number. > > lib/test_bpf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/test_bpf.c b/lib/test_bpf.c > index c41705835cba..5ef3eccee27c 100644 > --- a/lib/test_bpf.c > +++ b/lib/test_bpf.c > @@ -867,7 +867,7 @@ static struct bpf_test tests[] = { > }, > CLASSIC, > { }, > - { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, > + { { 4, 0xA ^ 300 }, { 20, 0xA ^ 300 } }, > }, > { > "SPILL_FILL", >
On 8/19/19 6:34 AM, Nathan Chancellor wrote: > r369217 in clang added a new warning about potential misuse of the xor > operator as an exponentiation operator: > > ../lib/test_bpf.c:870:13: warning: result of '10 ^ 300' is 294; did you > mean '1e300'? [-Wxor-used-as-pow] > { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, > ~~~^~~~~ > 1e300 > ../lib/test_bpf.c:870:13: note: replace expression with '0xA ^ 300' to > silence this warning > ../lib/test_bpf.c:870:31: warning: result of '10 ^ 300' is 294; did you > mean '1e300'? [-Wxor-used-as-pow] > { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, > ~~~^~~~~ > 1e300 > ../lib/test_bpf.c:870:31: note: replace expression with '0xA ^ 300' to > silence this warning > > The commit link for this new warning has some good logic behind wanting > to add it but this instance appears to be a false positive. Adopt its > suggestion to silence the warning but not change the code. According to > the differential review link in the clang commit, GCC may eventually > adopt this warning as well. > > Link: https://github.com/ClangBuiltLinux/linux/issues/643 > Link: https://github.com/llvm/llvm-project/commit/920890e26812f808a74c60ebc14cc636dac661c1 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Applied, thanks!
diff --git a/lib/test_bpf.c b/lib/test_bpf.c index c41705835cba..5ef3eccee27c 100644 --- a/lib/test_bpf.c +++ b/lib/test_bpf.c @@ -867,7 +867,7 @@ static struct bpf_test tests[] = { }, CLASSIC, { }, - { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, + { { 4, 0xA ^ 300 }, { 20, 0xA ^ 300 } }, }, { "SPILL_FILL",
r369217 in clang added a new warning about potential misuse of the xor operator as an exponentiation operator: ../lib/test_bpf.c:870:13: warning: result of '10 ^ 300' is 294; did you mean '1e300'? [-Wxor-used-as-pow] { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, ~~~^~~~~ 1e300 ../lib/test_bpf.c:870:13: note: replace expression with '0xA ^ 300' to silence this warning ../lib/test_bpf.c:870:31: warning: result of '10 ^ 300' is 294; did you mean '1e300'? [-Wxor-used-as-pow] { { 4, 10 ^ 300 }, { 20, 10 ^ 300 } }, ~~~^~~~~ 1e300 ../lib/test_bpf.c:870:31: note: replace expression with '0xA ^ 300' to silence this warning The commit link for this new warning has some good logic behind wanting to add it but this instance appears to be a false positive. Adopt its suggestion to silence the warning but not change the code. According to the differential review link in the clang commit, GCC may eventually adopt this warning as well. Link: https://github.com/ClangBuiltLinux/linux/issues/643 Link: https://github.com/llvm/llvm-project/commit/920890e26812f808a74c60ebc14cc636dac661c1 Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- I highly doubt that 1e300 was intented but if it was (or something else was), please let me know. Commit history wasn't entirely clear on why this expression was used over just a raw number. lib/test_bpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)