[PATCH] D63423: [Diagnostics] Diagnose misused xor as pow
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 19 10:39:47 PDT 2019
aaron.ballman added a comment.
In D63423#1550697 <https://reviews.llvm.org/D63423#1550697>, @jfb wrote:
> What I meant with macros was that I don't think we should warn on:
>
> #define LEGIT(a, b) ({ work work work; a ^ b; work work work; })
>
> LEGIT(10, 5);
>
>
> If the constants are inline in the macros then sure, warn there. Basically: if you literally wrote `CONSTANT ^ CONSTANT` and it looks fishy, let's warn. If token-pasting wrote it for you and it looks fishy, let's not warn.
So you would not want to see this code diagnosed?
#define POW(x, y) (x ^ y)
void f() {
int two_to_the_derp = POW(2, 16);
}
I'm not certain I understand the rationale for why we would not want to diagnose such a construct. Do we have reason to expect a lot of false positives?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63423/new/
https://reviews.llvm.org/D63423
More information about the cfe-commits
mailing list