[cfe-commits] r164143 - in /cfe/trunk: include/clang/Basic/DiagnosticGroups.td include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaChecking.cpp test/Analysis/additive-folding.cpp test/Sema/compare.c test/Sema/outof-range-constant-compare.c te

John McCall rjmccall at apple.com
Tue Sep 25 14:40:48 PDT 2012


On Sep 25, 2012, at 8:29 AM, Hans Wennborg wrote:
> On Tue, Sep 18, 2012 at 6:37 PM, Fariborz Jahanian <fjahanian at apple.com> wrote:
>> Author: fjahanian
>> Date: Tue Sep 18 12:37:21 2012
>> New Revision: 164143
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=164143&view=rev
>> Log:
>> c: warn when an integer value comparison with an
>> integral expression have the obvious result.
>> Patch reviewed by John McCall off line.
>> // rdar://12202422
> 
> This triggers a couple of warnings in Chromium. (We're tracking it at
> http://crbug.com/151927) Most look like bugs, but this one doesn't
> really:
> 
> /usr/local/google/work/chrome/src/v8/src/utils.h:977:20: warning:
> comparison of constant 32 with expression of type
> 'v8::internal::AstPropertiesFlag' is always true
> [-Wtautological-constant-out-of-range-compare]
>    ASSERT(element < static_cast<int>(sizeof(T) * CHAR_BIT));
>    ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> The code, with context, is available at [1]. This is in a class
> template, and 'element' has the type of a template parameter, so
> depending on what type the template is instantiated with, the
> comparison might be tautological or not. Perhaps the warning shouldn't
> fire for expressions that depend on template parameters?

Yes, I think this is probably a reasonable request for all of the
tautological-comparison warnings.

John.



More information about the cfe-commits mailing list