[cfe-commits] r166039 - in /cfe/trunk: include/clang/Basic/DiagnosticGroups.td include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaCast.cpp test/Analysis/CFContainers.mm test/Analysis/idempotent-operations.c test/Analysis/misc-ps-region-store

David Blaikie dblaikie at gmail.com
Wed Oct 17 11:56:20 PDT 2012


On Wed, Oct 17, 2012 at 11:31 AM, Matt Beaumont-Gay
<matthewbg at google.com> wrote:
> On Wed, Oct 17, 2012 at 11:25 AM, David Blaikie <dblaikie at gmail.com> wrote:
>> On Wed, Oct 17, 2012 at 11:16 AM, Matt Beaumont-Gay
>> <matthewbg at google.com> wrote:
>>> On Tue, Oct 16, 2012 at 11:53 AM, David Blaikie <dblaikie at gmail.com> wrote:
>>>> Author: dblaikie
>>>> Date: Tue Oct 16 13:53:14 2012
>>>> New Revision: 166039
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=166039&view=rev
>>>> Log:
>>>> Implement GCC's -Wint-to-pointer-cast.
>>>>
>>>> This implementation doesn't warn on anything that GCC doesn't warn on with the
>>>> exception of templates specializations (GCC doesn't warn, Clang does). The
>>>> specific skipped cases (boolean, constant expressions, enums) are open for
>>>> debate/adjustment if anyone wants to demonstrate that GCC is being overly
>>>> conservative here. The only really obvious false positive I found was in the
>>>> Clang regression suite's MPI test - apparently MPI uses specific flag values in
>>>> pointer constants. (eg: #define FOO (void*)~0)
>>>>
>>>> Modified:
>>>>     cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>>>>     cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>>>>     cfe/trunk/lib/Sema/SemaCast.cpp
>>>>     cfe/trunk/test/Analysis/CFContainers.mm
>>>>     cfe/trunk/test/Analysis/idempotent-operations.c
>>>>     cfe/trunk/test/Analysis/misc-ps-region-store.m
>>>>     cfe/trunk/test/Analysis/taint-tester.c
>>>>     cfe/trunk/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p5.cpp
>>>>     cfe/trunk/test/Sema/block-return.c
>>>>     cfe/trunk/test/Sema/cast.c
>>>>     cfe/trunk/test/Sema/i-c-e.c
>>>>     cfe/trunk/test/SemaCXX/cast-conversion.cpp
>>>>     cfe/trunk/test/SemaCXX/decl-expr-ambiguity.cpp
>>>>
>>>> Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=166039&r1=166038&r2=166039&view=diff
>>>> ==============================================================================
>>>> --- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
>>>> +++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Tue Oct 16 13:53:14 2012
>>>> @@ -365,6 +365,8 @@
>>>>
>>>>  def TypeSafety : DiagGroup<"type-safety">;
>>>>
>>>> +def IntToPointerCast : DiagGroup<"int-to-pointer-cast">;
>>>> +
>>>>  def Extra : DiagGroup<"extra", [
>>>>      MissingFieldInitializers,
>>>>      IgnoredQualifiers,
>>>> @@ -412,7 +414,7 @@
>>>>  // Note that putting warnings in -Wall will not disable them by default. If a
>>>>  // warning should be active _only_ when -Wall is passed in, mark it as
>>>>  // DefaultIgnore in addition to putting it here.
>>>> -def : DiagGroup<"all", [Most, Parentheses, Switch]>;
>>>> +def : DiagGroup<"all", [Most, Parentheses, Switch, IntToPointerCast]>;
>>>
>>> Any reason not to put the new flag in -Wmost?
>>
>> It's on by default. The only reason it's in -Wall is because that's
>> where it is in GCC. I suppose that doesn't rule out putting it in
>> -Wmost instead, though - not sure what the tradeoffs/benefits are
>> here.
>
> -Wmost seems to be where we have the big list of random DiagGroups.
> I'd just as soon only have one of those, rather than having specific
> warnings arbitrarily placed in -Wmost or -Wall.

Moved to -Wmost in r166118.

Thanks,
- David



More information about the cfe-commits mailing list