summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-10-22 23:03:58 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-10-22 23:03:58 +0000
commit51c8b3e9dbcdac883ea20d559a4714d2336227ab (patch)
tree68c6adf564d1453d91bb206b857fb43c1380afe0
parentf084edd0b43fcb26a5a2e49c77a580497f780056 (diff)
downloadbcm5719-llvm-51c8b3e9dbcdac883ea20d559a4714d2336227ab.tar.gz
bcm5719-llvm-51c8b3e9dbcdac883ea20d559a4714d2336227ab.zip
Basic: Add ext_delete_void_ptr_operand to -Wdelete-incomplete
This fixes PR21340. llvm-svn: 220442
-rw-r--r--clang/include/clang/Basic/DiagnosticGroups.td1
-rw-r--r--clang/include/clang/Basic/DiagnosticSemaKinds.td5
-rw-r--r--clang/test/Misc/warning-flags.c3
3 files changed, 5 insertions, 4 deletions
diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td
index 00955900938..9b63735b605 100644
--- a/clang/include/clang/Basic/DiagnosticGroups.td
+++ b/clang/include/clang/Basic/DiagnosticGroups.td
@@ -71,6 +71,7 @@ def GNUDesignator : DiagGroup<"gnu-designator">;
def GNUStringLiteralOperatorTemplate :
DiagGroup<"gnu-string-literal-operator-template">;
+def DeleteIncomplete : DiagGroup<"delete-incomplete">;
def DeleteNonVirtualDtor : DiagGroup<"delete-non-virtual-dtor">;
def AbstractFinalClass : DiagGroup<"abstract-final-class">;
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index 54d7040ce2c..e6ad4b54bd1 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -5314,12 +5314,13 @@ def note_add_initializer : Note<
"add an explicit initializer to initialize %0">;
def err_delete_operand : Error<"cannot delete expression of type %0">;
def ext_delete_void_ptr_operand : ExtWarn<
- "cannot delete expression with pointer-to-'void' type %0">;
+ "cannot delete expression with pointer-to-'void' type %0">,
+ InGroup<DeleteIncomplete>;
def err_ambiguous_delete_operand : Error<
"ambiguous conversion of delete expression of type %0 to a pointer">;
def warn_delete_incomplete : Warning<
"deleting pointer to incomplete type %0 may cause undefined behavior">,
- InGroup<DiagGroup<"delete-incomplete">>;
+ InGroup<DeleteIncomplete>;
def err_delete_incomplete_class_type : Error<
"deleting incomplete class type %0; no conversions to pointer type">;
def err_delete_explicit_conversion : Error<
diff --git a/clang/test/Misc/warning-flags.c b/clang/test/Misc/warning-flags.c
index 066cf01ed86..2afa88f5dff 100644
--- a/clang/test/Misc/warning-flags.c
+++ b/clang/test/Misc/warning-flags.c
@@ -18,8 +18,7 @@ This test serves two purposes:
The list of warnings below should NEVER grow. It should gradually shrink to 0.
-CHECK: Warnings without flags (99):
-CHECK-NEXT: ext_delete_void_ptr_operand
+CHECK: Warnings without flags (98):
CHECK-NEXT: ext_excess_initializers
CHECK-NEXT: ext_excess_initializers_in_char_array_initializer
CHECK-NEXT: ext_expected_semi_decl_list
OpenPOWER on IntegriCloud