[gcc r11-3472] analyzer: add test for placement new

David Malcolm dmalcolm@gcc.gnu.org
Sat Sep 26 01:35:01 GMT 2020


https://gcc.gnu.org/g:d4a906e7b51f3fc31f3328810f45ae4cf2e7bbc3

commit r11-3472-gd4a906e7b51f3fc31f3328810f45ae4cf2e7bbc3
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Fri Sep 25 14:31:46 2020 -0400

    analyzer: add test for placement new
    
    gcc/testsuite/ChangeLog:
            PR analyzer/94355
            * g++.dg/analyzer/placement-new.C: New test.

Diff:
---
 gcc/testsuite/g++.dg/analyzer/placement-new.C | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gcc/testsuite/g++.dg/analyzer/placement-new.C b/gcc/testsuite/g++.dg/analyzer/placement-new.C
new file mode 100644
index 00000000000..8250f45b9d9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/analyzer/placement-new.C
@@ -0,0 +1,26 @@
+#include <new>
+
+/* Placement new.  */
+
+void test_1 (void)
+{
+  char buf[sizeof(int)];
+  int *p = new(buf) int (42);
+}
+
+/* Placement new[].  */
+
+void test_2 (void)
+{
+  char buf[sizeof(int) * 10];
+  int *p = new(buf) int[10];
+}
+
+/* Delete of placement new.  */
+
+void test_3 (void)
+{
+  char buf[sizeof(int)];
+  int *p = new(buf) int (42);
+  delete p; // { dg-warning "memory not on the heap" }
+}


More information about the Gcc-cvs mailing list