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 <tha...@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@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&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@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>> >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> >> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits