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 15 12:02:02 PST 2015


(...but it looks like these are all just warnings. The reason the builder
is red is

In file included from
C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\unittests\Support\ThreadPool.cpp:10:
C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\include\llvm/Support/ThreadPool.h(73,50)
:  error: no matching function for call to object of type 'const
std::_Bind<true, void, void (*const)(std::atomic_int &, int),
std::reference_wrapper<std::atomic_int>, unsigned int &>'
    return asyncImpl([Task] (VoidTy) -> VoidTy { Task(); return VoidTy();
});
                                                 ^~~~

which is Mehdi's ThreadPool breakage from yesterday night. I guess his
workaround broke building clang with clang-cl?)

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?
>
> 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/20151215/a8c5f6f5/attachment.html>


More information about the cfe-commits mailing list