Re: r255382 - [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.

2015-12-22 Thread Nico Weber via cfe-commits
On Tue, Dec 15, 2015 at 2:56 PM, Nico Weber  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  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@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@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=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=255381=255382=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
/W1Enable -Wall
/W2Enable -Wall
/W3Enable -Wall
 -  /W4Enable -Wall
 +  /W4Enable -Wall and -Wextra
/Wall  Enable -Wall
/WX-   Do not treat warnings as errors
/WXTreat 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=255381=255382=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=255381=255382=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;
  def _SLASH_W2 : CLFlag<"W2">, 

Re: r255382 - [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.

2015-12-15 Thread Nico Weber via cfe-commits
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  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@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@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=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=255381=255382=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
>>>/W1Enable -Wall
>>>/W2Enable -Wall
>>>/W3Enable -Wall
>>> -  /W4Enable -Wall
>>> +  /W4Enable -Wall and -Wextra
>>>/Wall  Enable -Wall
>>>/WX-   Do not treat warnings as errors
>>>/WXTreat 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=255381=255382=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=255381=255382=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;
>>>  def _SLASH_W2 : CLFlag<"W2">, HelpText<"Enable -Wall">, Alias;
>>>  def _SLASH_W3 : CLFlag<"W3">, HelpText<"Enable -Wall">, Alias;
>>> -def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall">, Alias;
>>> +def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall and -Wextra">,
>>> Alias;
>>>  def _SLASH_Wall : CLFlag<"Wall">, HelpText<"Enable -Wall">, 

Re: r255382 - [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.

2015-12-15 Thread Nico Weber via cfe-commits
(...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'
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  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  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@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@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=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=255381=255382=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
/W1Enable -Wall
/W2Enable -Wall
/W3Enable -Wall
 -  /W4Enable -Wall
 +  /W4Enable -Wall and -Wextra
/Wall  Enable -Wall
/WX-   Do not treat warnings as errors
/WXTreat 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=255381=255382=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: 

Re: r255382 - [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.

2015-12-14 Thread Reid Kleckner via cfe-commits
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@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=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=255381=255382=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
>/W1Enable -Wall
>/W2Enable -Wall
>/W3Enable -Wall
> -  /W4Enable -Wall
> +  /W4Enable -Wall and -Wextra
>/Wall  Enable -Wall
>/WX-   Do not treat warnings as errors
>/WXTreat 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=255381=255382=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=255381=255382=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;
>  def _SLASH_W2 : CLFlag<"W2">, HelpText<"Enable -Wall">, Alias;
>  def _SLASH_W3 : CLFlag<"W3">, HelpText<"Enable -Wall">, Alias;
> -def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall">, Alias;
> +def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall and -Wextra">,
> Alias;
>  def _SLASH_Wall : CLFlag<"Wall">, HelpText<"Enable -Wall">, Alias;
>  def _SLASH_WX : CLFlag<"WX">, HelpText<"Treat warnings as errors">,
>Alias, 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=255381=255382=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  to the
> assembler">,
>MetaVarName<"">;
>  def Wall : Flag<["-"], "Wall">, Group, Flags<[CC1Option]>;
> +def WCL4 : Flag<["-"], "WCL4">, Group, Flags<[CC1Option]>;
>  def Wdeprecated : Flag<["-"], "Wdeprecated">, Group,
> Flags<[CC1Option]>;
>  def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group,
> Flags<[CC1Option]>;
>  def Wextra : Flag<["-"], "Wextra">, 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=255381=255382=diff
>
> 

r255382 - [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.

2015-12-11 Thread Nico Weber via cfe-commits
Author: nico
Date: Fri Dec 11 16:31:16 2015
New Revision: 255382

URL: http://llvm.org/viewvc/llvm-project?rev=255382=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=255381=255382=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
   /W1Enable -Wall
   /W2Enable -Wall
   /W3Enable -Wall
-  /W4Enable -Wall
+  /W4Enable -Wall and -Wextra
   /Wall  Enable -Wall
   /WX-   Do not treat warnings as errors
   /WXTreat 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=255381=255382=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=255381=255382=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;
 def _SLASH_W2 : CLFlag<"W2">, HelpText<"Enable -Wall">, Alias;
 def _SLASH_W3 : CLFlag<"W3">, HelpText<"Enable -Wall">, Alias;
-def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall">, Alias;
+def _SLASH_W4 : CLFlag<"W4">, HelpText<"Enable -Wall and -Wextra">, 
Alias;
 def _SLASH_Wall : CLFlag<"Wall">, HelpText<"Enable -Wall">, Alias;
 def _SLASH_WX : CLFlag<"WX">, HelpText<"Treat warnings as errors">,
   Alias, 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=255381=255382=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  to the assembler">,
   MetaVarName<"">;
 def Wall : Flag<["-"], "Wall">, Group, Flags<[CC1Option]>;
+def WCL4 : Flag<["-"], "WCL4">, Group, Flags<[CC1Option]>;
 def Wdeprecated : Flag<["-"], "Wdeprecated">, Group, 
Flags<[CC1Option]>;
 def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group, 
Flags<[CC1Option]>;
 def Wextra : Flag<["-"], "Wextra">, 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=255381=255382=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