[cfe-commits] [Patch] Add new warning for logical not on LHS of comparison
Jordan Rose
jordan_rose at apple.com
Mon Oct 15 09:44:29 PDT 2012
On Oct 14, 2012, at 8:19 , Stephen Canon <scanon at apple.com> wrote:
> On Oct 12, 2012, at 12:38 PM, Richard Trieu <rtrieu at google.com> wrote:
>
>> This patch is for a new warning to Clang, called -Wlogical-not-compare. It is designed to catch the case where the user is attempting to negate a comparison, but only manages to negate the LHS because of missing parens. For instance, warn here:
>>
>> if (!x < 5)
>>
>> The user probably meant:
>>
>> if (!(x < 5))
>>
>> or
>>
>> if (x >= 5)
>>
>> When emitted, the warning will have a note suggesting this as a fix-it (drop the not and inverting the comparison operator).
>
> If x has FP type, then !(x < 5) is not equivalent to (x >= 5); if x is NaN, the first is true, but the second is false.
The fixit is on a note, so I personally think it's okay that it doesn't perfectly match the semantics of the existing expression. I think most people ignore NaNs when writing casual floating-point code.
Jordan
More information about the cfe-commits
mailing list