comparison gcc/testsuite/g++.dg/cpp1y/new1.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-cddce-details" } */
3 // { dg-additional-options "-fdelete-null-pointer-checks" }
4
5 #include <stdlib.h>
6
7 void
8 new_without_use() {
9 int *x = new int;
10 }
11
12 void
13 new_array_without_use() {
14 int *x = new int[5];
15 }
16
17 void
18 new_primitive() {
19 int *x = new int;
20 delete x;
21 }
22
23 void
24 new_array() {
25 int *x = new int[10];
26 delete [] x;
27 }
28
29 void
30 new_primitive_store() {
31 int *x = new int;
32 *x = 10;
33 delete x;
34 }
35
36 void
37 new_primitive_load() {
38 int *x = new int;
39 int tmp = *x;
40 delete x;
41 }
42
43 int
44 new_primitive_load_with_use() {
45 int *x = new int;
46 int tmp = *x;
47 delete x;
48 return tmp;
49 }
50
51 void
52 new_array_store() {
53 int *x = new int[10];
54 x[4] = 10;
55 delete [] x;
56 }
57
58 void
59 new_array_load() {
60 int *x = new int[10];
61 int tmp = x[4];
62 delete [] x;
63 }
64
65 void
66 test_unused() {
67 volatile double d = 0.0;
68 double *p = new double ();
69 d += 1.0; // { dg-warning "deprecated" "" { target c++2a } }
70 delete p;
71 }
72
73 /* { dg-final { scan-tree-dump-times "Deleting : operator delete" 5 "cddce1"} } */
74 /* { dg-final { scan-tree-dump-times "Deleting : _\\d+ = operator new" 7 "cddce1"} } */