diff options
author | David Blaikie <dblaikie@gmail.com> | 2012-03-14 22:28:22 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2012-03-14 22:28:22 +0000 |
commit | 47bfaf19ddc980a9eb48f2978f4da9b7861b9cda (patch) | |
tree | 6ad0bb8f92cbae6212f09659459828ae2e722752 /include | |
parent | 10cde2fc0c1804427dd3e0c050c149ac6d415f51 (diff) |
Provide -Wnull-conversion separately from -Wconversion.
Like GCC, provide a NULL conversion to non-pointer conversion as a separate
flag, on by default. GCC's flag is "conversion-null" which we provide for
cross compatibility, but in the interests of consistency (with
-Wint-conversion, -Wbool-conversion, etc) the canonical Clang flag is called
-Wnull-conversion.
Patch by Lubos Lunak.
Review feedback by myself, Chandler Carruth, and Chad Rosier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152745 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Basic/DiagnosticGroups.td | 6 | ||||
-rw-r--r-- | include/clang/Basic/DiagnosticSemaKinds.td | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/include/clang/Basic/DiagnosticGroups.td b/include/clang/Basic/DiagnosticGroups.td index 26dcc40aba..3063b289c7 100644 --- a/include/clang/Basic/DiagnosticGroups.td +++ b/include/clang/Basic/DiagnosticGroups.td @@ -28,6 +28,7 @@ def Availability : DiagGroup<"availability">; def AutoImport : DiagGroup<"auto-import">; def BoolConversions : DiagGroup<"bool-conversions">; def IntConversions : DiagGroup<"int-conversions">; +def NullConversion : DiagGroup<"null-conversion">; def BuiltinRequiresHeader : DiagGroup<"builtin-requires-header">; def CXXCompat: DiagGroup<"c++-compat">; def CastAlign : DiagGroup<"cast-align">; @@ -282,6 +283,7 @@ def Parentheses : DiagGroup<"parentheses", // - conversion warnings with constant sources are on by default // - conversion warnings for literals are on by default // - bool-to-pointer conversion warnings are on by default +// - __null-to-integer conversion warnings are on by default def Conversion : DiagGroup<"conversion", [DiagGroup<"shorten-64-to-32">, DiagGroup<"constant-conversion">, @@ -289,6 +291,7 @@ def Conversion : DiagGroup<"conversion", DiagGroup<"string-conversion">, DiagGroup<"sign-conversion">, BoolConversions, + NullConversion, IntConversions]>, DiagCategory<"Value Conversion Issue">; @@ -357,6 +360,9 @@ def : DiagGroup<"all", [Most, Parentheses, Switch]>; def : DiagGroup<"", [Extra]>; // -W = -Wextra def : DiagGroup<"endif-labels", [ExtraTokens]>; // -Wendif-labels=-Wendif-tokens def : DiagGroup<"comments", [Comment]>; // -Wcomments = -Wcomment +def : DiagGroup<"conversion-null", + [NullConversion]>; // -Wconversion-null = -Wnull-conversion + // A warning group for warnings that we want to have on by default in clang, // but which aren't on by default in GCC. diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index f6540ef278..7bbf431ae4 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -1732,7 +1732,7 @@ def warn_impcast_bool_to_null_pointer : Warning< "expression">, InGroup<BoolConversions>; def warn_impcast_null_pointer_to_integer : Warning< "implicit conversion of NULL constant to integer">, - InGroup<DiagGroup<"conversion">>, DefaultIgnore; + InGroup<NullConversion>; def warn_impcast_function_to_bool : Warning< "address of function %q0 will always evaluate to 'true'">, InGroup<BoolConversions>; |