From 9ca33fd56720112bcc4bccb8aa6107abbb68cae3 Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Thu, 15 Mar 2012 01:00:38 +0000 Subject: [PATCH] Revert r152745 as it's breaking the internal buildbots. Abbreviated commit message: Provide -Wnull-conversion separately from -Wconversion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152765 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticGroups.td | 6 ------ include/clang/Basic/DiagnosticSemaKinds.td | 2 +- lib/Driver/Tools.cpp | 1 - test/Analysis/nullptr.cpp | 2 +- test/SemaCXX/__null.cpp | 4 ++-- test/SemaCXX/conversion.cpp | 4 ---- 6 files changed, 4 insertions(+), 15 deletions(-) diff --git a/include/clang/Basic/DiagnosticGroups.td b/include/clang/Basic/DiagnosticGroups.td index 3063b289c7..26dcc40aba 100644 --- a/include/clang/Basic/DiagnosticGroups.td +++ b/include/clang/Basic/DiagnosticGroups.td @@ -28,7 +28,6 @@ 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">; @@ -283,7 +282,6 @@ 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">, @@ -291,7 +289,6 @@ def Conversion : DiagGroup<"conversion", DiagGroup<"string-conversion">, DiagGroup<"sign-conversion">, BoolConversions, - NullConversion, IntConversions]>, DiagCategory<"Value Conversion Issue">; @@ -360,9 +357,6 @@ 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 0670d1f31a..463db06d09 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; def warn_impcast_null_pointer_to_integer : Warning< "implicit conversion of NULL constant to integer">, - InGroup; + InGroup>, DefaultIgnore; def warn_impcast_function_to_bool : Warning< "address of function %q0 will always evaluate to 'true'">, InGroup; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 536897f879..780016a8b8 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -3168,7 +3168,6 @@ void darwin::CC1::RemoveCC1UnsupportedArgs(ArgStringList &CmdArgs) const { .Case("c++11-narrowing", true) .Case("conditional-uninitialized", true) .Case("constant-conversion", true) - .Case("conversion-null", true) .Case("CFString-literal", true) .Case("constant-logical-operand", true) .Case("custom-atomic-properties", true) diff --git a/test/Analysis/nullptr.cpp b/test/Analysis/nullptr.cpp index 3119b4fc39..c0fed87242 100644 --- a/test/Analysis/nullptr.cpp +++ b/test/Analysis/nullptr.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++11 -Wno-conversion-null -analyze -analyzer-checker=core -analyzer-store region -verify %s +// RUN: %clang_cc1 -std=c++11 -analyze -analyzer-checker=core -analyzer-store region -verify %s // test to see if nullptr is detected as a null pointer void foo1(void) { diff --git a/test/SemaCXX/__null.cpp b/test/SemaCXX/__null.cpp index 56e59c06f1..1989a45fb5 100644 --- a/test/SemaCXX/__null.cpp +++ b/test/SemaCXX/__null.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -Wno-null-conversion -fsyntax-only -verify -// RUN: %clang_cc1 -triple i686-unknown-unknown %s -Wno-null-conversion -fsyntax-only -verify +// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify +// RUN: %clang_cc1 -triple i686-unknown-unknown %s -fsyntax-only -verify void f() { int* i = __null; diff --git a/test/SemaCXX/conversion.cpp b/test/SemaCXX/conversion.cpp index d9ba07ab5b..b069abc263 100644 --- a/test/SemaCXX/conversion.cpp +++ b/test/SemaCXX/conversion.cpp @@ -53,14 +53,10 @@ namespace test2 { }; } -// This file tests -Wnull-conversion, a subcategory of -Wconversion -// which is on by default. - void test3() { int a = NULL; // expected-warning {{implicit conversion of NULL constant to integer}} int b; b = NULL; // expected-warning {{implicit conversion of NULL constant to integer}} - long l = NULL; // FIXME: this should also warn, but currently does not if sizeof(NULL)==sizeof(inttype) int c = ((((NULL)))); // expected-warning {{implicit conversion of NULL constant to integer}} int d; d = ((((NULL)))); // expected-warning {{implicit conversion of NULL constant to integer}} -- 2.40.0