From: Nico Weber Date: Fri, 11 Dec 2015 22:31:16 +0000 (+0000) Subject: [clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=73e51e88d5ed202c6c828d88371f2d694fd9826a;p=clang [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255382 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst index 3226014b41..aa891c7630 100644 --- a/docs/UsersManual.rst +++ b/docs/UsersManual.rst @@ -2080,7 +2080,7 @@ Execute ``clang-cl /?`` to see a list of supported options: /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 diff --git a/include/clang/Basic/DiagnosticGroups.td b/include/clang/Basic/DiagnosticGroups.td index 64add07b17..44a6a114ed 100644 --- a/include/clang/Basic/DiagnosticGroups.td +++ b/include/clang/Basic/DiagnosticGroups.td @@ -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">; diff --git a/include/clang/Driver/CLCompatOptions.td b/include/clang/Driver/CLCompatOptions.td index a8282b46e0..8da6e8c08c 100644 --- a/include/clang/Driver/CLCompatOptions.td +++ b/include/clang/Driver/CLCompatOptions.td @@ -119,7 +119,7 @@ def _SLASH_W0 : CLFlag<"W0">, HelpText<"Disable all warnings">, Alias; 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"]>; diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 9852ecf2a5..8c2791607a 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -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]>; diff --git a/test/Driver/cl-options.c b/test/Driver/cl-options.c index 180b15ead3..fc56be8993 100644 --- a/test/Driver/cl-options.c +++ b/test/Driver/cl-options.c @@ -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