aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2014-10-23 22:07:49 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2014-10-23 22:07:49 +0100
commit53b0f7471aadaff6b3762039413d6265c06ef3b2 (patch)
tree8c01813656e723e58b6b1b4a9d4972b44861b607 /gcc
parent5cbc4e2a24771aea2363d231bd670dce59cd4bd3 (diff)
downloadgcc-53b0f7471aadaff6b3762039413d6265c06ef3b2.zip
gcc-53b0f7471aadaff6b3762039413d6265c06ef3b2.tar.gz
gcc-53b0f7471aadaff6b3762039413d6265c06ef3b2.tar.bz2
re PR c++/63619 (warning: deleting ‘void*’ is undefined has no -W flag)
PR c++/63619 gcc/cp: PR c++/63619 * decl2.c (delete_sanity): Use OPT_Wdelete_incomplete in warning. gcc/testsuite: PR c++/63619 * g++.dg/warn/Wdelete-incomplete-3.C: New. * g++.dg/warn/Wdelete-incomplete-4.C: New. From-SVN: r216599
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl2.c2
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/warn/Wdelete-incomplete-3.C6
-rw-r--r--gcc/testsuite/g++.dg/warn/Wdelete-incomplete-4.C7
5 files changed, 25 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e566750..f741bfb 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/63619
+ * decl2.c (delete_sanity): Use OPT_Wdelete_incomplete in warning.
+
2014-10-21 Paolo Carlini <paolo.carlini@oracle.com>
* parser.c (cp_parser_unary_expression): Add default arguments.
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 4be4847..60c8a63 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -478,7 +478,7 @@ delete_sanity (tree exp, tree size, bool doing_vec, int use_global_delete,
/* Deleting ptr to void is undefined behavior [expr.delete/3]. */
if (VOID_TYPE_P (TREE_TYPE (type)))
{
- warning (0, "deleting %qT is undefined", type);
+ warning (OPT_Wdelete_incomplete, "deleting %qT is undefined", type);
doing_vec = 0;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e510541..88e08e0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/63619
+ * g++.dg/warn/Wdelete-incomplete-3.C: New.
+ * g++.dg/warn/Wdelete-incomplete-4.C: New.
+
2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
PR target/63618
diff --git a/gcc/testsuite/g++.dg/warn/Wdelete-incomplete-3.C b/gcc/testsuite/g++.dg/warn/Wdelete-incomplete-3.C
new file mode 100644
index 0000000..2202d60
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wdelete-incomplete-3.C
@@ -0,0 +1,6 @@
+// PR c++/63619
+
+int main() {
+ void* p;
+ delete p; // { dg-warning "undefined" }
+}
diff --git a/gcc/testsuite/g++.dg/warn/Wdelete-incomplete-4.C b/gcc/testsuite/g++.dg/warn/Wdelete-incomplete-4.C
new file mode 100644
index 0000000..f2eb5ba
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wdelete-incomplete-4.C
@@ -0,0 +1,7 @@
+// PR c++/63619
+// { dg-options -Wno-delete-incomplete }
+
+int main() {
+ void* p;
+ delete p;
+}