r255382 - [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 22 17:47:16 PST 2015
On Tue, Dec 15, 2015 at 2:56 PM, Nico Weber <thakis at chromium.org> wrote:
> Looks like the warning is still emitted frequently. It looks like cl.exe
> processes /W4 before /wd4100 even though if it's passed as "/wd4100 /W4".
> clang-cl probably interprets this as "first, disable Wunused-parameter,
> then turn on everything in Wall and Wextra".
>
> I suppose we could process W1-4 before all other warning flags to be
> compatible with cl.exe in this regard. However, it's less clear what to do
> about /Wall -- if we process /Wall before all the other flags, then -Wall
> (another spelling of /Wall) will behave differently in clang and clang-cl.
> Maybe that's ok?
>
Until we decide on something for this, http://reviews.llvm.org/D15731
should make the self-host build less noisy.
>
> On Tue, Dec 15, 2015 at 12:11 PM, Nico Weber <thakis at chromium.org> wrote:
>
>> Feedback on PR25563 pretty strongly suggests that users do want most of
>> this. It looks like llvm passes /wd4100 to suppress the corresponding cl
>> warning. r255655 maps that to -Wno-unused-parameter – does this fix the
>> problem of these bots?
>>
>> On Mon, Dec 14, 2015 at 10:01 PM, Reid Kleckner via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> So, this change makes it impossible to download the build lots from the
>>> Windows self-hosting builders because of -Wunused-parameter errors.
>>>
>>> http://lab.llvm.org:8011/builders/clang-x86-win2008-selfhost/builds/5103/steps/build%20stage%202/logs/stdio
>>>
>>> Maybe that's an indication that users don't really want /W4 to go to
>>> -Wextra?
>>>
>>> On Fri, Dec 11, 2015 at 2:31 PM, Nico Weber via cfe-commits <
>>> cfe-commits at lists.llvm.org> wrote:
>>>
>>>> Author: nico
>>>> Date: Fri Dec 11 16:31:16 2015
>>>> New Revision: 255382
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=255382&view=rev
>>>> Log:
>>>> [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.
>>>>
>>>> There's no way to make a flag alias to two flags, so add a /WCL4 flag
>>>> that
>>>> maps to the All, Extra diag groups. Fixes PR25563.
>>>>
>>>> http://reviews.llvm.org/D15350
>>>>
>>>> Modified:
>>>> cfe/trunk/docs/UsersManual.rst
>>>> cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>>>> cfe/trunk/include/clang/Driver/CLCompatOptions.td
>>>> cfe/trunk/include/clang/Driver/Options.td
>>>> cfe/trunk/test/Driver/cl-options.c
>>>>
>>>> Modified: cfe/trunk/docs/UsersManual.rst
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UsersManual.rst?rev=255382&r1=255381&r2=255382&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/docs/UsersManual.rst (original)
>>>> +++ cfe/trunk/docs/UsersManual.rst Fri Dec 11 16:31:16 2015
>>>> @@ -2080,7 +2080,7 @@ Execute ``clang-cl /?`` to see a list of
>>>> /W1 Enable -Wall
>>>> /W2 Enable -Wall
>>>> /W3 Enable -Wall
>>>> - /W4 Enable -Wall
>>>> + /W4 Enable -Wall and -Wextra
>>>> /Wall Enable -Wall
>>>> /WX- Do not treat warnings as errors
>>>> /WX Treat warnings as errors
>>>>
>>>> Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=255382&r1=255381&r2=255382&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
>>>> +++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Fri Dec 11
>>>> 16:31:16 2015
>>>> @@ -663,7 +663,10 @@ def Consumed : DiagGroup<"consumed
>>>> // 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, SwitchBool]>;
>>>> +def All : DiagGroup<"all", [Most, Parentheses, Switch, SwitchBool]>;
>>>> +
>>>> +// Warnings that should be in clang-cl /w4.
>>>> +def : DiagGroup<"CL4", [All, Extra]>;
>>>>
>>>> // Warnings enabled by -pedantic. This is magically filled in by
>>>> TableGen.
>>>> def Pedantic : DiagGroup<"pedantic">;
>>>>
>>>> Modified: cfe/trunk/include/clang/Driver/CLCompatOptions.td
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CLCompatOptions.td?rev=255382&r1=255381&r2=255382&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/include/clang/Driver/CLCompatOptions.td (original)
>>>> +++ cfe/trunk/include/clang/Driver/CLCompatOptions.td Fri Dec 11
>>>> 16:31:16 2015
>>>> @@ -119,7 +119,7 @@ def _SLASH_W0 : CLFlag<"W0">, HelpText<"
>>>> def _SLASH_W1 : CLFlag<"W1">, HelpText<"Enable -Wall">, Alias<Wall>;
>>>> def _SLASH_W2 : CLFlag<"W2">, HelpText<"Enable -Wall">, Alias<Wall>;
>>>> def _SLASH_W3 : CLFlag<"W3">, HelpText<"Enable -Wall">, Alias<Wall>;
>>>> -def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall">, Alias<Wall>;
>>>> +def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall and -Wextra">,
>>>> Alias<WCL4>;
>>>> def _SLASH_Wall : CLFlag<"Wall">, HelpText<"Enable -Wall">,
>>>> Alias<Wall>;
>>>> def _SLASH_WX : CLFlag<"WX">, HelpText<"Treat warnings as errors">,
>>>> Alias<W_Joined>, AliasArgs<["error"]>;
>>>>
>>>> Modified: cfe/trunk/include/clang/Driver/Options.td
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=255382&r1=255381&r2=255382&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/include/clang/Driver/Options.td (original)
>>>> +++ cfe/trunk/include/clang/Driver/Options.td Fri Dec 11 16:31:16 2015
>>>> @@ -295,6 +295,7 @@ def Wa_COMMA : CommaJoined<["-"], "Wa,">
>>>> HelpText<"Pass the comma separated arguments in <arg> to the
>>>> assembler">,
>>>> MetaVarName<"<arg>">;
>>>> def Wall : Flag<["-"], "Wall">, Group<W_Group>, Flags<[CC1Option]>;
>>>> +def WCL4 : Flag<["-"], "WCL4">, Group<W_Group>, Flags<[CC1Option]>;
>>>> def Wdeprecated : Flag<["-"], "Wdeprecated">, Group<W_Group>,
>>>> Flags<[CC1Option]>;
>>>> def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group<W_Group>,
>>>> Flags<[CC1Option]>;
>>>> def Wextra : Flag<["-"], "Wextra">, Group<W_Group>, Flags<[CC1Option]>;
>>>>
>>>> Modified: cfe/trunk/test/Driver/cl-options.c
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-options.c?rev=255382&r1=255381&r2=255382&view=diff
>>>>
>>>> ==============================================================================
>>>> --- cfe/trunk/test/Driver/cl-options.c (original)
>>>> +++ cfe/trunk/test/Driver/cl-options.c Fri Dec 11 16:31:16 2015
>>>> @@ -173,9 +173,10 @@
>>>> // RUN: %clang_cl /W1 -### -- %s 2>&1 | FileCheck -check-prefix=W1 %s
>>>> // RUN: %clang_cl /W2 -### -- %s 2>&1 | FileCheck -check-prefix=W1 %s
>>>> // RUN: %clang_cl /W3 -### -- %s 2>&1 | FileCheck -check-prefix=W1 %s
>>>> -// RUN: %clang_cl /W4 -### -- %s 2>&1 | FileCheck -check-prefix=W1 %s
>>>> +// RUN: %clang_cl /W4 -### -- %s 2>&1 | FileCheck -check-prefix=W4 %s
>>>> // RUN: %clang_cl /Wall -### -- %s 2>&1 | FileCheck -check-prefix=W1 %s
>>>> // W1: -Wall
>>>> +// W4: -WCL4
>>>>
>>>> // RUN: %clang_cl /WX -### -- %s 2>&1 | FileCheck -check-prefix=WX %s
>>>> // WX: -Werror
>>>>
>>>>
>>>> _______________________________________________
>>>> cfe-commits mailing list
>>>> cfe-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>>
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151222/b82142a5/attachment-0001.html>
More information about the cfe-commits
mailing list