diff options
author | David Malcolm <dmalcolm@redhat.com> | 2020-09-25 14:31:46 -0400 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2020-09-25 21:34:20 -0400 |
commit | d4a906e7b51f3fc31f3328810f45ae4cf2e7bbc3 (patch) | |
tree | ee18fdc7c66f4554af86a84e5a5a63e173d37c8a | |
parent | 29f5db8ef81fac4db8e66e5f06fdf1d469e8161c (diff) | |
download | gcc-d4a906e7b51f3fc31f3328810f45ae4cf2e7bbc3.zip gcc-d4a906e7b51f3fc31f3328810f45ae4cf2e7bbc3.tar.gz gcc-d4a906e7b51f3fc31f3328810f45ae4cf2e7bbc3.tar.bz2 |
analyzer: add test for placement new
gcc/testsuite/ChangeLog:
PR analyzer/94355
* g++.dg/analyzer/placement-new.C: New test.
-rw-r--r-- | gcc/testsuite/g++.dg/analyzer/placement-new.C | 26 |
1 files changed, 26 insertions, 0 deletions
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 0000000..8250f45 --- /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" } +} |