Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/init/new44.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 // { dg-do compile } | 1 // { dg-do compile } |
2 // { dg-options "-ftrack-macro-expansion=0" } | |
2 | 3 |
3 // Test for PR c++/67927 - array new expression with excessive number | 4 // Test for PR c++/67927 - array new expression with excessive number |
4 // of elements not diagnosed. | 5 // of elements not diagnosed. |
5 | 6 |
6 // GCC uses a different maximum value at compile time and at runtime: | 7 // GCC uses a different maximum value at compile time and at runtime: |
34 | 35 |
35 // Exercise new expression with one-dimensional arrays of char. | 36 // Exercise new expression with one-dimensional arrays of char. |
36 static void __attribute__ ((used)) | 37 static void __attribute__ ((used)) |
37 test_one_dim_char_array () | 38 test_one_dim_char_array () |
38 { | 39 { |
39 p = new char [MAX]; // { dg-error "size of array" } | 40 p = new char [MAX]; // { dg-error "size .\[0-9\]+. of array" } |
40 p = new char [MAX - 1]; // { dg-error "size of array" } | 41 p = new char [MAX - 1]; // { dg-error "size .\[0-9\]+. of array" } |
41 p = new char [MAX - 2]; // { dg-error "size of array" } | 42 p = new char [MAX - 2]; // { dg-error "size .\[0-9\]+. of array" } |
42 p = new char [MAX - 99]; // { dg-error "size of array" } | 43 p = new char [MAX - 99]; // { dg-error "size .\[0-9\]+. of array" } |
43 p = new char [MAX / 2]; // { dg-error "size of array" } | 44 p = new char [MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
44 p = new char [MAX / 2 - 1]; // { dg-error "size of array" } | 45 p = new char [MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
45 p = new char [MAX / 2 - 2]; // { dg-error "size of array" } | 46 p = new char [MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
46 | 47 |
47 // Avoid testing the expressions below since whether or not they | 48 // Avoid testing the expressions below since whether or not they |
48 // are accepted depends on the precision of size_t (which also | 49 // are accepted depends on the precision of size_t (which also |
49 // determines the size of the cookie). | 50 // determines the size of the cookie). |
50 // p = new char [MAX / 2 - 3]; | 51 // p = new char [MAX / 2 - 3]; |
60 } | 61 } |
61 | 62 |
62 static void __attribute__ ((used)) | 63 static void __attribute__ ((used)) |
63 test_one_dim_short_array () | 64 test_one_dim_short_array () |
64 { | 65 { |
65 p = new short [MAX]; // { dg-error "size of array" } | 66 p = new short [MAX]; // { dg-error "size .\[0-9\]+. of array" } |
66 p = new short [MAX - 1]; // { dg-error "size of array" } | 67 p = new short [MAX - 1]; // { dg-error "size .\[0-9\]+. of array" } |
67 p = new short [MAX - 2]; // { dg-error "size of array" } | 68 p = new short [MAX - 2]; // { dg-error "size .\[0-9\]+. of array" } |
68 p = new short [MAX - 99]; // { dg-error "size of array" } | 69 p = new short [MAX - 99]; // { dg-error "size .\[0-9\]+. of array" } |
69 p = new short [MAX / 2]; // { dg-error "size of array" } | 70 p = new short [MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
70 p = new short [MAX / 2 - 1]; // { dg-error "size of array" } | 71 p = new short [MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
71 p = new short [MAX / 2 - 2]; // { dg-error "size of array" } | 72 p = new short [MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
72 p = new short [MAX / 2 - 3]; // { dg-error "size of array" } | 73 p = new short [MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of array" } |
73 p = new short [MAX / 2 - 4]; // { dg-error "size of array" } | 74 p = new short [MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of array" } |
74 p = new short [MAX / 2 - 5]; // { dg-error "size of array" } | 75 p = new short [MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of array" } |
75 p = new short [MAX / 2 - 6]; // { dg-error "size of array" } | 76 p = new short [MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of array" } |
76 p = new short [MAX / 2 - 7]; // { dg-error "size of array" } | 77 p = new short [MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
77 p = new short [MAX / 2 - 8]; // { dg-error "size of array" } | 78 p = new short [MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
78 p = new short [MAX / 4]; // { dg-error "size of array" } | 79 p = new short [MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
79 | 80 |
80 // Avoid exercising data model-dependent expressions. | 81 // Avoid exercising data model-dependent expressions. |
81 // p = new short [MAX / 4 - 1]; | 82 // p = new short [MAX / 4 - 1]; |
82 | 83 |
83 p = new short [MAX / 4 - 4]; // okay | 84 p = new short [MAX / 4 - 4]; // okay |
85 | 86 |
86 // Exercise new expression with two-dimensional arrays or char. | 87 // Exercise new expression with two-dimensional arrays or char. |
87 static void __attribute__ ((used)) | 88 static void __attribute__ ((used)) |
88 test_two_dim_char_array () | 89 test_two_dim_char_array () |
89 { | 90 { |
90 p = new char [1][MAX]; // { dg-error "size of (unnamed )?array" } | 91 p = new char [1][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
91 p = new char [1][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 92 p = new char [1][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
92 p = new char [1][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 93 p = new char [1][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
93 p = new char [1][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 94 p = new char [1][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
94 p = new char [1][MAX / 2]; // { dg-error "size of array" } | 95 p = new char [1][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
95 p = new char [1][MAX / 2 - 1]; // { dg-error "size of array" } | 96 p = new char [1][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
96 p = new char [1][MAX / 2 - 2]; // { dg-error "size of array" } | 97 p = new char [1][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
97 | 98 |
98 // Avoid exercising data model-dependent expressions. | 99 // Avoid exercising data model-dependent expressions. |
99 // p = new char [1][MAX / 2 - 3]; | 100 // p = new char [1][MAX / 2 - 3]; |
100 // p = new char [1][MAX / 2 - 4]; | 101 // p = new char [1][MAX / 2 - 4]; |
101 // p = new char [1][MAX / 2 - 5]; | 102 // p = new char [1][MAX / 2 - 5]; |
102 // p = new char [1][MAX / 2 - 6]; | 103 // p = new char [1][MAX / 2 - 6]; |
103 | 104 |
104 p = new char [1][MAX / 2 - 7]; // okay | 105 p = new char [1][MAX / 2 - 7]; // okay |
105 p = new char [1][MAX / 2 - 8]; // okay | 106 p = new char [1][MAX / 2 - 8]; // okay |
106 | 107 |
107 p = new char [2][MAX]; // { dg-error "size of (unnamed )?array" } | 108 p = new char [2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
108 p = new char [2][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 109 p = new char [2][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
109 p = new char [2][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 110 p = new char [2][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
110 p = new char [2][MAX / 2]; // { dg-error "size of array" } | 111 p = new char [2][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
111 p = new char [2][MAX / 2 - 1]; // { dg-error "size of array" } | 112 p = new char [2][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
112 p = new char [2][MAX / 2 - 2]; // { dg-error "size of array" } | 113 p = new char [2][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
113 p = new char [2][MAX / 2 - 7]; // { dg-error "size of array" } | 114 p = new char [2][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
114 p = new char [2][MAX / 2 - 8]; // { dg-error "size of array" } | 115 p = new char [2][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
115 | 116 |
116 p = new char [MAX][MAX]; // { dg-error "size of (unnamed )?array" } | 117 p = new char [MAX][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
117 p = new char [MAX][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 118 p = new char [MAX][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
118 p = new char [MAX][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 119 p = new char [MAX][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
119 p = new char [MAX][MAX / 2]; // { dg-error "size of array" } | 120 p = new char [MAX][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
120 p = new char [MAX][MAX / 2 - 1]; // { dg-error "size of array" } | 121 p = new char [MAX][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
121 p = new char [MAX][MAX / 2 - 2]; // { dg-error "size of array" } | 122 p = new char [MAX][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
122 p = new char [MAX][MAX / 2 - 7]; // { dg-error "size of array" } | 123 p = new char [MAX][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
123 p = new char [MAX][MAX / 2 - 8]; // { dg-error "size of array" } | 124 p = new char [MAX][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
124 p = new char [MAX][2]; // { dg-error "size of array" } | 125 p = new char [MAX][2]; // { dg-error "size .\[0-9\]+. of array" } |
125 p = new char [MAX][1]; // { dg-error "size of array" } | 126 p = new char [MAX][1]; // { dg-error "size .\[0-9\]+. of array" } |
126 p = new char [MAX / 2][1]; // { dg-error "size of array" } | 127 p = new char [MAX / 2][1]; // { dg-error "size .\[0-9\]+. of array" } |
127 p = new char [MAX / 2 - 1][1]; // { dg-error "size of array" } | 128 p = new char [MAX / 2 - 1][1]; // { dg-error "size .\[0-9\]+. of array" } |
128 p = new char [MAX / 2 - 2][1]; // { dg-error "size of array" } | 129 p = new char [MAX / 2 - 2][1]; // { dg-error "size .\[0-9\]+. of array" } |
129 | 130 |
130 // Avoid exercising data model-dependent expressions. | 131 // Avoid exercising data model-dependent expressions. |
131 // p = new char [MAX / 2 - 3][1]; | 132 // p = new char [MAX / 2 - 3][1]; |
132 // p = new char [MAX / 2 - 4][1]; | 133 // p = new char [MAX / 2 - 4][1]; |
133 // p = new char [MAX / 2 - 5][1]; | 134 // p = new char [MAX / 2 - 5][1]; |
140 | 141 |
141 // Exercise new expression with three-dimensional arrays. | 142 // Exercise new expression with three-dimensional arrays. |
142 static __attribute__ ((used)) void | 143 static __attribute__ ((used)) void |
143 test_three_dim_char_array () | 144 test_three_dim_char_array () |
144 { | 145 { |
145 p = new char [1][1][MAX]; // { dg-error "size of (unnamed )?array" } | 146 p = new char [1][1][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
146 p = new char [1][1][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 147 p = new char [1][1][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
147 p = new char [1][1][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 148 p = new char [1][1][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
148 p = new char [1][1][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 149 p = new char [1][1][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
149 p = new char [1][1][MAX / 2]; // { dg-error "size of array" } | 150 p = new char [1][1][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
150 p = new char [1][1][MAX / 2 - 1]; // { dg-error "size of array" } | 151 p = new char [1][1][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
151 p = new char [1][1][MAX / 2 - 2]; // { dg-error "size of array" } | 152 p = new char [1][1][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
152 | 153 |
153 // Avoid exercising data model-dependent expressions. | 154 // Avoid exercising data model-dependent expressions. |
154 // p = new char [1][1][MAX / 2 - 3]; | 155 // p = new char [1][1][MAX / 2 - 3]; |
155 // p = new char [1][1][MAX / 2 - 4]; | 156 // p = new char [1][1][MAX / 2 - 4]; |
156 // p = new char [1][1][MAX / 2 - 5]; | 157 // p = new char [1][1][MAX / 2 - 5]; |
157 // p = new char [1][1][MAX / 2 - 6]; | 158 // p = new char [1][1][MAX / 2 - 6]; |
158 | 159 |
159 p = new char [1][1][MAX / 2 - 7]; // okay | 160 p = new char [1][1][MAX / 2 - 7]; // okay |
160 p = new char [1][1][MAX / 2 - 8]; // okay | 161 p = new char [1][1][MAX / 2 - 8]; // okay |
161 | 162 |
162 p = new char [1][2][MAX]; // { dg-error "size of (unnamed )?array" } | 163 p = new char [1][2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
163 p = new char [1][2][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 164 p = new char [1][2][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
164 p = new char [1][2][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 165 p = new char [1][2][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
165 p = new char [1][2][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 166 p = new char [1][2][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
166 p = new char [1][2][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 167 p = new char [1][2][MAX / 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
167 p = new char [1][2][MAX / 2 - 1]; // { dg-error "size of (unnamed )?array" } | 168 p = new char [1][2][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
168 p = new char [1][2][MAX / 2 - 2]; // { dg-error "size of (unnamed )?array" } | 169 p = new char [1][2][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
169 p = new char [1][2][MAX / 2 - 3]; // { dg-error "size of (unnamed )?array" } | 170 p = new char [1][2][MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
170 p = new char [1][2][MAX / 2 - 4]; // { dg-error "size of (unnamed )?array" } | 171 p = new char [1][2][MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
171 p = new char [1][2][MAX / 2 - 5]; // { dg-error "size of (unnamed )?array" } | 172 p = new char [1][2][MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
172 p = new char [1][2][MAX / 2 - 6]; // { dg-error "size of (unnamed )?array" } | 173 p = new char [1][2][MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
173 p = new char [1][2][MAX / 2 - 7]; // { dg-error "size of (unnamed )?array" } | 174 p = new char [1][2][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
174 p = new char [1][2][MAX / 2 - 8]; // { dg-error "size of (unnamed )?array" } | 175 p = new char [1][2][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
175 p = new char [1][2][MAX / 4]; // { dg-error "size of array" } | 176 p = new char [1][2][MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
176 | 177 |
177 // Avoid exercising data model-dependent expressions. | 178 // Avoid exercising data model-dependent expressions. |
178 // p = new char [1][2][MAX / 4 - 1]; | 179 // p = new char [1][2][MAX / 4 - 1]; |
179 // p = new char [1][2][MAX / 4 - 2]; | 180 // p = new char [1][2][MAX / 4 - 2]; |
180 | 181 |
181 p = new char [1][2][MAX / 4 - 3]; // okay | 182 p = new char [1][2][MAX / 4 - 3]; // okay |
182 p = new char [1][2][MAX / 4 - 4]; // okay | 183 p = new char [1][2][MAX / 4 - 4]; // okay |
183 | 184 |
184 p = new char [2][1][MAX]; // { dg-error "size of (unnamed )?array" } | 185 p = new char [2][1][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
185 p = new char [2][1][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 186 p = new char [2][1][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
186 p = new char [2][1][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 187 p = new char [2][1][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
187 p = new char [2][1][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 188 p = new char [2][1][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
188 p = new char [2][1][MAX / 2]; // { dg-error "size of array" } | 189 p = new char [2][1][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
189 p = new char [2][1][MAX / 2 - 1]; // { dg-error "size of array" } | 190 p = new char [2][1][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
190 p = new char [2][1][MAX / 2 - 2]; // { dg-error "size of array" } | 191 p = new char [2][1][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
191 p = new char [2][1][MAX / 2 - 3]; // { dg-error "size of array" } | 192 p = new char [2][1][MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of array" } |
192 p = new char [2][1][MAX / 2 - 4]; // { dg-error "size of array" } | 193 p = new char [2][1][MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of array" } |
193 p = new char [2][1][MAX / 2 - 5]; // { dg-error "size of array" } | 194 p = new char [2][1][MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of array" } |
194 p = new char [2][1][MAX / 2 - 6]; // { dg-error "size of array" } | 195 p = new char [2][1][MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of array" } |
195 p = new char [2][1][MAX / 2 - 7]; // { dg-error "size of array" } | 196 p = new char [2][1][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
196 p = new char [2][1][MAX / 2 - 8]; // { dg-error "size of array" } | 197 p = new char [2][1][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
197 p = new char [2][1][MAX / 4]; // { dg-error "size of array" } | 198 p = new char [2][1][MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
198 | 199 |
199 // Avoid exercising data model-dependent expressions. | 200 // Avoid exercising data model-dependent expressions. |
200 // p = new char [2][1][MAX / 4 - 1]; | 201 // p = new char [2][1][MAX / 4 - 1]; |
201 // p = new char [2][1][MAX / 4 - 2]; | 202 // p = new char [2][1][MAX / 4 - 2]; |
202 | 203 |
203 p = new char [2][1][MAX / 4 - 3]; // okay | 204 p = new char [2][1][MAX / 4 - 3]; // okay |
204 p = new char [2][1][MAX / 4 - 4]; // okay | 205 p = new char [2][1][MAX / 4 - 4]; // okay |
205 | 206 |
206 p = new char [2][2][MAX]; // { dg-error "size of (unnamed )?array" } | 207 p = new char [2][2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
207 p = new char [2][2][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 208 p = new char [2][2][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
208 p = new char [2][2][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 209 p = new char [2][2][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
209 p = new char [2][2][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 210 p = new char [2][2][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
210 p = new char [2][2][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 211 p = new char [2][2][MAX / 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
211 p = new char [2][2][MAX / 2 - 1]; // { dg-error "size of (unnamed )?array" } | 212 p = new char [2][2][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
212 p = new char [2][2][MAX / 2 - 2]; // { dg-error "size of (unnamed )?array" } | 213 p = new char [2][2][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
213 p = new char [2][2][MAX / 2 - 3]; // { dg-error "size of (unnamed )?array" } | 214 p = new char [2][2][MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
214 p = new char [2][2][MAX / 2 - 4]; // { dg-error "size of (unnamed )?array" } | 215 p = new char [2][2][MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
215 p = new char [2][2][MAX / 2 - 5]; // { dg-error "size of (unnamed )?array" } | 216 p = new char [2][2][MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
216 p = new char [2][2][MAX / 2 - 6]; // { dg-error "size of (unnamed )?array" } | 217 p = new char [2][2][MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
217 p = new char [2][2][MAX / 2 - 7]; // { dg-error "size of (unnamed )?array" } | 218 p = new char [2][2][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
218 p = new char [2][2][MAX / 2 - 8]; // { dg-error "size of (unnamed )?array" } | 219 p = new char [2][2][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
219 p = new char [2][2][MAX / 4]; // { dg-error "size of array" } | 220 p = new char [2][2][MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
220 p = new char [2][2][MAX / 4 - 1]; // { dg-error "size of array" } | 221 p = new char [2][2][MAX / 4 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
221 p = new char [2][2][MAX / 4 - 2]; // { dg-error "size of array" } | 222 p = new char [2][2][MAX / 4 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
222 | 223 |
223 // Avoid exercising data model-dependent expressions. | 224 // Avoid exercising data model-dependent expressions. |
224 // p = new char [2][2][MAX / 8]; | 225 // p = new char [2][2][MAX / 8]; |
225 // p = new char [2][2][MAX / 8 - 1]; | 226 // p = new char [2][2][MAX / 8 - 1]; |
226 | 227 |
227 p = new char [2][2][MAX / 8 - 2]; | 228 p = new char [2][2][MAX / 8 - 2]; |
228 p = new char [2][2][MAX / 8 - 3]; | 229 p = new char [2][2][MAX / 8 - 3]; |
229 | 230 |
230 p = new char [2][MAX][2]; // { dg-error "size of (unnamed )?array" } | 231 p = new char [2][MAX][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
231 p = new char [2][MAX - 1][2]; // { dg-error "size of (unnamed )?array" } | 232 p = new char [2][MAX - 1][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
232 p = new char [2][MAX - 2][2]; // { dg-error "size of (unnamed )?array" } | 233 p = new char [2][MAX - 2][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
233 p = new char [2][MAX - 99][2]; // { dg-error "size of (unnamed )?array" } | 234 p = new char [2][MAX - 99][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
234 p = new char [2][MAX / 2][2]; // { dg-error "size of (unnamed )?array" } | 235 p = new char [2][MAX / 2][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
235 p = new char [2][MAX / 2 - 1][2]; // { dg-error "size of (unnamed )?array" } | 236 p = new char [2][MAX / 2 - 1][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
236 p = new char [2][MAX / 2 - 2][2]; // { dg-error "size of (unnamed )?array" } | 237 p = new char [2][MAX / 2 - 2][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
237 p = new char [2][MAX / 2 - 3][2]; // { dg-error "size of (unnamed )?array" } | 238 p = new char [2][MAX / 2 - 3][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
238 p = new char [2][MAX / 2 - 4][2]; // { dg-error "size of (unnamed )?array" } | 239 p = new char [2][MAX / 2 - 4][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
239 p = new char [2][MAX / 2 - 5][2]; // { dg-error "size of (unnamed )?array" } | 240 p = new char [2][MAX / 2 - 5][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
240 p = new char [2][MAX / 2 - 6][2]; // { dg-error "size of (unnamed )?array" } | 241 p = new char [2][MAX / 2 - 6][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
241 p = new char [2][MAX / 2 - 7][2]; // { dg-error "size of (unnamed )?array" } | 242 p = new char [2][MAX / 2 - 7][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
242 p = new char [2][MAX / 2 - 8][2]; // { dg-error "size of (unnamed )?array" } | 243 p = new char [2][MAX / 2 - 8][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
243 p = new char [2][MAX / 4][2]; // { dg-error "size of array" } | 244 p = new char [2][MAX / 4][2]; // { dg-error "size .\[0-9\]+. of array" } |
244 p = new char [2][MAX / 4 - 1][2]; // { dg-error "size of array" } | 245 p = new char [2][MAX / 4 - 1][2]; // { dg-error "size .\[0-9\]+. of array" } |
245 p = new char [2][MAX / 4 - 2][2]; // { dg-error "size of array" } | 246 p = new char [2][MAX / 4 - 2][2]; // { dg-error "size .\[0-9\]+. of array" } |
246 | 247 |
247 // Avoid exercising data model-dependent expressions. | 248 // Avoid exercising data model-dependent expressions. |
248 // p = new char [2][MAX / 8][2]; | 249 // p = new char [2][MAX / 8][2]; |
249 // p = new char [2][MAX / 8 - 1][2]; | 250 // p = new char [2][MAX / 8 - 1][2]; |
250 | 251 |
251 p = new char [2][MAX / 8 - 2][2]; | 252 p = new char [2][MAX / 8 - 2][2]; |
252 p = new char [2][MAX / 8 - 3][2]; | 253 p = new char [2][MAX / 8 - 3][2]; |
253 | 254 |
254 p = new char [MAX][2][2]; // { dg-error "size of array" } | 255 p = new char [MAX][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
255 p = new char [MAX - 1][2][2]; // { dg-error "size of array" } | 256 p = new char [MAX - 1][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
256 p = new char [MAX - 2][2][2]; // { dg-error "size of array" } | 257 p = new char [MAX - 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
257 p = new char [MAX - 99][2][2]; // { dg-error "size of array" } | 258 p = new char [MAX - 99][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
258 p = new char [MAX / 2][2][2]; // { dg-error "size of array" } | 259 p = new char [MAX / 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
259 p = new char [MAX / 2 - 1][2][2]; // { dg-error "size of array" } | 260 p = new char [MAX / 2 - 1][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
260 p = new char [MAX / 2 - 2][2][2]; // { dg-error "size of array" } | 261 p = new char [MAX / 2 - 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
261 p = new char [MAX / 2 - 3][2][2]; // { dg-error "size of array" } | 262 p = new char [MAX / 2 - 3][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
262 p = new char [MAX / 2 - 4][2][2]; // { dg-error "size of array" } | 263 p = new char [MAX / 2 - 4][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
263 p = new char [MAX / 2 - 5][2][2]; // { dg-error "size of array" } | 264 p = new char [MAX / 2 - 5][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
264 p = new char [MAX / 2 - 6][2][2]; // { dg-error "size of array" } | 265 p = new char [MAX / 2 - 6][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
265 p = new char [MAX / 2 - 7][2][2]; // { dg-error "size of array" } | 266 p = new char [MAX / 2 - 7][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
266 p = new char [MAX / 2 - 8][2][2]; // { dg-error "size of array" } | 267 p = new char [MAX / 2 - 8][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
267 p = new char [MAX / 4][2][2]; // { dg-error "size of array" } | 268 p = new char [MAX / 4][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
268 p = new char [MAX / 4 - 1][2][2]; // { dg-error "size of array" } | 269 p = new char [MAX / 4 - 1][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
269 p = new char [MAX / 4 - 2][2][2]; // { dg-error "size of array" } | 270 p = new char [MAX / 4 - 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
270 | 271 |
271 // Avoid exercising data model-dependent expressions. | 272 // Avoid exercising data model-dependent expressions. |
272 // p = new char [MAX / 8][2][2]; | 273 // p = new char [MAX / 8][2][2]; |
273 // p = new char [MAX / 8 - 1][2][2]; | 274 // p = new char [MAX / 8 - 1][2][2]; |
274 | 275 |
275 p = new char [MAX / 8 - 2][2][2]; | 276 p = new char [MAX / 8 - 2][2][2]; |
276 p = new char [MAX / 8 - 3][2][2]; | 277 p = new char [MAX / 8 - 3][2][2]; |
277 | 278 |
278 p = new char [MAX][MAX][MAX]; // { dg-error "size of (unnamed )?array" } | 279 p = new char [MAX][MAX][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
279 p = new char [MAX][MAX][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 280 p = new char [MAX][MAX][MAX / 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
280 p = new char [MAX][MAX / 2][MAX]; // { dg-error "size of (unnamed )?array" } | 281 p = new char [MAX][MAX / 2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
281 p = new char [MAX][MAX / 2][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 282 p = new char [MAX][MAX / 2][MAX / 2]; // { dg-error "size of (unnamed )?array" } |
282 p = new char [MAX / 2][MAX / 2][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 283 p = new char [MAX / 2][MAX / 2][MAX / 2]; // { dg-error "size of (unnamed )?array" } |
283 } | 284 } |
284 | 285 |
285 // Exercise new expression with N-dimensional arrays where N is | 286 // Exercise new expression with N-dimensional arrays where N is |
294 #endif | 295 #endif |
295 | 296 |
296 p = new char [N][N][N][N][N][N][N]; | 297 p = new char [N][N][N][N][N][N][N]; |
297 p = new char [N / 2][2][N][N][N][N][N][N]; | 298 p = new char [N / 2][2][N][N][N][N][N][N]; |
298 p = new char [N - 1][N / 2][N][N][N][N][N][N]; | 299 p = new char [N - 1][N / 2][N][N][N][N][N][N]; |
299 p = new char [N / 2][N][N][N][N][N][N][N]; // { dg-error "size of array" } | 300 p = new char [N / 2][N][N][N][N][N][N][N]; // { dg-error "size .\[0-9\]+. of array" } |
300 p = new char [N - 1][N][N][N][N][N][N][N]; // { dg-error "size of array" } | 301 p = new char [N - 1][N][N][N][N][N][N][N]; // { dg-error "size .\[0-9\]+. of array" } |
301 p = new char [N] [N][N][N][N][N][N][N]; // { dg-error "size of array" } | 302 p = new char [N] [N][N][N][N][N][N][N]; // { dg-error "size .\[0-9\]+. of array" } |
302 } | 303 } |
303 | 304 |
304 typedef struct Byte { | 305 typedef struct Byte { |
305 char c; | 306 char c; |
306 | 307 |
313 | 314 |
314 // Exercise placement new expression with one-dimensional arrays of a struct. | 315 // Exercise placement new expression with one-dimensional arrays of a struct. |
315 static void __attribute__ ((used)) | 316 static void __attribute__ ((used)) |
316 test_one_dim_byte_array (void *p) | 317 test_one_dim_byte_array (void *p) |
317 { | 318 { |
318 p = new (p) B [MAX]; // { dg-error "size of array" } | 319 p = new (p) B [MAX]; // { dg-error "size .\[0-9\]+. of array" } |
319 p = new (p) B [MAX - 1]; // { dg-error "size of array" } | 320 p = new (p) B [MAX - 1]; // { dg-error "size .\[0-9\]+. of array" } |
320 p = new (p) B [MAX - 2]; // { dg-error "size of array" } | 321 p = new (p) B [MAX - 2]; // { dg-error "size .\[0-9\]+. of array" } |
321 p = new (p) B [MAX - 99]; // { dg-error "size of array" } | 322 p = new (p) B [MAX - 99]; // { dg-error "size .\[0-9\]+. of array" } |
322 p = new (p) B [MAX / 2]; // { dg-error "size of array" } | 323 p = new (p) B [MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
323 p = new (p) B [MAX / 2 - 1]; // { dg-error "size of array" } | 324 p = new (p) B [MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
324 p = new (p) B [MAX / 2 - 2]; // { dg-error "size of array" } | 325 p = new (p) B [MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
325 | 326 |
326 // Avoid testing the expressions below since whether or not they | 327 // Avoid testing the expressions below since whether or not they |
327 // are accepted depends on the precision of size_t (which determines | 328 // are accepted depends on the precision of size_t (which determines |
328 // the size of the cookie). | 329 // the size .\[0-9\]+. of the cookie). |
329 // p = new (p) B [MAX / 2 - 3]; | 330 // p = new (p) B [MAX / 2 - 3]; |
330 // p = new (p) B [MAX / 2 - 4]; | 331 // p = new (p) B [MAX / 2 - 4]; |
331 // p = new (p) B [MAX / 2 - 5]; | 332 // p = new (p) B [MAX / 2 - 5]; |
332 // p = new (p) B [MAX / 2 - 6]; | 333 // p = new (p) B [MAX / 2 - 6]; |
333 | 334 |
340 | 341 |
341 // Exercise placement new expression with two-dimensional arrays. | 342 // Exercise placement new expression with two-dimensional arrays. |
342 static void __attribute__ ((used)) | 343 static void __attribute__ ((used)) |
343 test_placement_two_dim_byte_struct_array (void *p) | 344 test_placement_two_dim_byte_struct_array (void *p) |
344 { | 345 { |
345 p = new (p) B [1][MAX]; // { dg-error "size of (unnamed )?array" } | 346 p = new (p) B [1][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
346 p = new (p) B [1][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 347 p = new (p) B [1][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
347 p = new (p) B [1][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 348 p = new (p) B [1][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
348 p = new (p) B [1][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 349 p = new (p) B [1][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
349 p = new (p) B [1][MAX / 2]; // { dg-error "size of array" } | 350 p = new (p) B [1][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
350 p = new (p) B [1][MAX / 2 - 1]; // { dg-error "size of array" } | 351 p = new (p) B [1][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
351 p = new (p) B [1][MAX / 2 - 2]; // { dg-error "size of array" } | 352 p = new (p) B [1][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
352 | 353 |
353 // Avoid exercising data model-dependent expressions. | 354 // Avoid exercising data model-dependent expressions. |
354 // p = new (p) B [1][MAX / 2 - 3]; | 355 // p = new (p) B [1][MAX / 2 - 3]; |
355 // p = new (p) B [1][MAX / 2 - 4]; | 356 // p = new (p) B [1][MAX / 2 - 4]; |
356 // p = new (p) B [1][MAX / 2 - 5]; | 357 // p = new (p) B [1][MAX / 2 - 5]; |
357 // p = new (p) B [1][MAX / 2 - 6]; | 358 // p = new (p) B [1][MAX / 2 - 6]; |
358 | 359 |
359 p = new (p) B [1][MAX / 2 - 7]; // okay | 360 p = new (p) B [1][MAX / 2 - 7]; // okay |
360 p = new (p) B [1][MAX / 2 - 8]; // okay | 361 p = new (p) B [1][MAX / 2 - 8]; // okay |
361 | 362 |
362 p = new (p) B [2][MAX]; // { dg-error "size of (unnamed )?array" } | 363 p = new (p) B [2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
363 p = new (p) B [2][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 364 p = new (p) B [2][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
364 p = new (p) B [2][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 365 p = new (p) B [2][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
365 p = new (p) B [2][MAX / 2]; // { dg-error "size of array" } | 366 p = new (p) B [2][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
366 p = new (p) B [2][MAX / 2 - 1]; // { dg-error "size of array" } | 367 p = new (p) B [2][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
367 p = new (p) B [2][MAX / 2 - 2]; // { dg-error "size of array" } | 368 p = new (p) B [2][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
368 p = new (p) B [2][MAX / 2 - 7]; // { dg-error "size of array" } | 369 p = new (p) B [2][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
369 p = new (p) B [2][MAX / 2 - 8]; // { dg-error "size of array" } | 370 p = new (p) B [2][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
370 | 371 |
371 p = new (p) B [MAX][MAX]; // { dg-error "size of (unnamed )?array" } | 372 p = new (p) B [MAX][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
372 p = new (p) B [MAX][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 373 p = new (p) B [MAX][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
373 p = new (p) B [MAX][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 374 p = new (p) B [MAX][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
374 p = new (p) B [MAX][MAX / 2]; // { dg-error "size of array" } | 375 p = new (p) B [MAX][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
375 p = new (p) B [MAX][MAX / 2 - 1]; // { dg-error "size of array" } | 376 p = new (p) B [MAX][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
376 p = new (p) B [MAX][MAX / 2 - 2]; // { dg-error "size of array" } | 377 p = new (p) B [MAX][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
377 p = new (p) B [MAX][MAX / 2 - 7]; // { dg-error "size of array" } | 378 p = new (p) B [MAX][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
378 p = new (p) B [MAX][MAX / 2 - 8]; // { dg-error "size of array" } | 379 p = new (p) B [MAX][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
379 p = new (p) B [MAX][2]; // { dg-error "size of array" } | 380 p = new (p) B [MAX][2]; // { dg-error "size .\[0-9\]+. of array" } |
380 p = new (p) B [MAX][1]; // { dg-error "size of array" } | 381 p = new (p) B [MAX][1]; // { dg-error "size .\[0-9\]+. of array" } |
381 p = new (p) B [MAX / 2][1]; // { dg-error "size of array" } | 382 p = new (p) B [MAX / 2][1]; // { dg-error "size .\[0-9\]+. of array" } |
382 p = new (p) B [MAX / 2 - 1][1]; // { dg-error "size of array" } | 383 p = new (p) B [MAX / 2 - 1][1]; // { dg-error "size .\[0-9\]+. of array" } |
383 p = new (p) B [MAX / 2 - 2][1]; // { dg-error "size of array" } | 384 p = new (p) B [MAX / 2 - 2][1]; // { dg-error "size .\[0-9\]+. of array" } |
384 | 385 |
385 // Avoid exercising data model-dependent expressions. | 386 // Avoid exercising data model-dependent expressions. |
386 // p = new (p) B [MAX / 2 - 3][1]; | 387 // p = new (p) B [MAX / 2 - 3][1]; |
387 // p = new (p) B [MAX / 2 - 4][1]; | 388 // p = new (p) B [MAX / 2 - 4][1]; |
388 // p = new (p) B [MAX / 2 - 5][1]; | 389 // p = new (p) B [MAX / 2 - 5][1]; |
395 | 396 |
396 // Exercise placement new expression with three-dimensional arrays. | 397 // Exercise placement new expression with three-dimensional arrays. |
397 static __attribute__ ((used)) void | 398 static __attribute__ ((used)) void |
398 test_placement_three_dim_byte_struct_array (void *p) | 399 test_placement_three_dim_byte_struct_array (void *p) |
399 { | 400 { |
400 p = new (p) B [1][1][MAX]; // { dg-error "size of (unnamed )?array" } | 401 p = new (p) B [1][1][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
401 p = new (p) B [1][1][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 402 p = new (p) B [1][1][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
402 p = new (p) B [1][1][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 403 p = new (p) B [1][1][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
403 p = new (p) B [1][1][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 404 p = new (p) B [1][1][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
404 p = new (p) B [1][1][MAX / 2]; // { dg-error "size of array" } | 405 p = new (p) B [1][1][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
405 p = new (p) B [1][1][MAX / 2 - 1]; // { dg-error "size of array" } | 406 p = new (p) B [1][1][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
406 p = new (p) B [1][1][MAX / 2 - 2]; // { dg-error "size of array" } | 407 p = new (p) B [1][1][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
407 | 408 |
408 // Avoid exercising data model-dependent expressions. | 409 // Avoid exercising data model-dependent expressions. |
409 // p = new (p) B [1][1][MAX / 2 - 3]; | 410 // p = new (p) B [1][1][MAX / 2 - 3]; |
410 // p = new (p) B [1][1][MAX / 2 - 4]; | 411 // p = new (p) B [1][1][MAX / 2 - 4]; |
411 // p = new (p) B [1][1][MAX / 2 - 5]; | 412 // p = new (p) B [1][1][MAX / 2 - 5]; |
412 // p = new (p) B [1][1][MAX / 2 - 6]; | 413 // p = new (p) B [1][1][MAX / 2 - 6]; |
413 | 414 |
414 p = new (p) B [1][1][MAX / 2 - 7]; // okay | 415 p = new (p) B [1][1][MAX / 2 - 7]; // okay |
415 p = new (p) B [1][1][MAX / 2 - 8]; // okay | 416 p = new (p) B [1][1][MAX / 2 - 8]; // okay |
416 | 417 |
417 p = new (p) B [1][2][MAX]; // { dg-error "size of (unnamed )?array" } | 418 p = new (p) B [1][2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
418 p = new (p) B [1][2][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 419 p = new (p) B [1][2][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
419 p = new (p) B [1][2][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 420 p = new (p) B [1][2][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
420 p = new (p) B [1][2][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 421 p = new (p) B [1][2][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
421 p = new (p) B [1][2][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 422 p = new (p) B [1][2][MAX / 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
422 p = new (p) B [1][2][MAX / 2 - 1]; // { dg-error "size of (unnamed )?array" } | 423 p = new (p) B [1][2][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
423 p = new (p) B [1][2][MAX / 2 - 2]; // { dg-error "size of (unnamed )?array" } | 424 p = new (p) B [1][2][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
424 p = new (p) B [1][2][MAX / 2 - 3]; // { dg-error "size of (unnamed )?array" } | 425 p = new (p) B [1][2][MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
425 p = new (p) B [1][2][MAX / 2 - 4]; // { dg-error "size of (unnamed )?array" } | 426 p = new (p) B [1][2][MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
426 p = new (p) B [1][2][MAX / 2 - 5]; // { dg-error "size of (unnamed )?array" } | 427 p = new (p) B [1][2][MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
427 p = new (p) B [1][2][MAX / 2 - 6]; // { dg-error "size of (unnamed )?array" } | 428 p = new (p) B [1][2][MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
428 p = new (p) B [1][2][MAX / 2 - 7]; // { dg-error "size of (unnamed )?array" } | 429 p = new (p) B [1][2][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
429 p = new (p) B [1][2][MAX / 2 - 8]; // { dg-error "size of (unnamed )?array" } | 430 p = new (p) B [1][2][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
430 p = new (p) B [1][2][MAX / 4]; // { dg-error "size of array" } | 431 p = new (p) B [1][2][MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
431 | 432 |
432 // Avoid exercising data model-dependent expressions. | 433 // Avoid exercising data model-dependent expressions. |
433 // p = new (p) B [1][2][MAX / 4 - 1]; | 434 // p = new (p) B [1][2][MAX / 4 - 1]; |
434 // p = new (p) B [1][2][MAX / 4 - 2]; | 435 // p = new (p) B [1][2][MAX / 4 - 2]; |
435 | 436 |
436 p = new (p) B [1][2][MAX / 4 - 3]; // okay | 437 p = new (p) B [1][2][MAX / 4 - 3]; // okay |
437 p = new (p) B [1][2][MAX / 4 - 4]; // okay | 438 p = new (p) B [1][2][MAX / 4 - 4]; // okay |
438 | 439 |
439 p = new (p) B [2][1][MAX]; // { dg-error "size of (unnamed )?array" } | 440 p = new (p) B [2][1][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
440 p = new (p) B [2][1][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 441 p = new (p) B [2][1][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
441 p = new (p) B [2][1][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 442 p = new (p) B [2][1][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
442 p = new (p) B [2][1][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 443 p = new (p) B [2][1][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
443 p = new (p) B [2][1][MAX / 2]; // { dg-error "size of array" } | 444 p = new (p) B [2][1][MAX / 2]; // { dg-error "size .\[0-9\]+. of array" } |
444 p = new (p) B [2][1][MAX / 2 - 1]; // { dg-error "size of array" } | 445 p = new (p) B [2][1][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
445 p = new (p) B [2][1][MAX / 2 - 2]; // { dg-error "size of array" } | 446 p = new (p) B [2][1][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
446 p = new (p) B [2][1][MAX / 2 - 3]; // { dg-error "size of array" } | 447 p = new (p) B [2][1][MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of array" } |
447 p = new (p) B [2][1][MAX / 2 - 4]; // { dg-error "size of array" } | 448 p = new (p) B [2][1][MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of array" } |
448 p = new (p) B [2][1][MAX / 2 - 5]; // { dg-error "size of array" } | 449 p = new (p) B [2][1][MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of array" } |
449 p = new (p) B [2][1][MAX / 2 - 6]; // { dg-error "size of array" } | 450 p = new (p) B [2][1][MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of array" } |
450 p = new (p) B [2][1][MAX / 2 - 7]; // { dg-error "size of array" } | 451 p = new (p) B [2][1][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of array" } |
451 p = new (p) B [2][1][MAX / 2 - 8]; // { dg-error "size of array" } | 452 p = new (p) B [2][1][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of array" } |
452 p = new (p) B [2][1][MAX / 4]; // { dg-error "size of array" } | 453 p = new (p) B [2][1][MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
453 | 454 |
454 // Avoid exercising data model-dependent expressions. | 455 // Avoid exercising data model-dependent expressions. |
455 // p = new (p) B [2][1][MAX / 4 - 1]; | 456 // p = new (p) B [2][1][MAX / 4 - 1]; |
456 // p = new (p) B [2][1][MAX / 4 - 2]; | 457 // p = new (p) B [2][1][MAX / 4 - 2]; |
457 | 458 |
458 p = new (p) B [2][1][MAX / 4 - 3]; // okay | 459 p = new (p) B [2][1][MAX / 4 - 3]; // okay |
459 p = new (p) B [2][1][MAX / 4 - 4]; // okay | 460 p = new (p) B [2][1][MAX / 4 - 4]; // okay |
460 | 461 |
461 p = new (p) B [2][2][MAX]; // { dg-error "size of (unnamed )?array" } | 462 p = new (p) B [2][2][MAX]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
462 p = new (p) B [2][2][MAX - 1]; // { dg-error "size of (unnamed )?array" } | 463 p = new (p) B [2][2][MAX - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
463 p = new (p) B [2][2][MAX - 2]; // { dg-error "size of (unnamed )?array" } | 464 p = new (p) B [2][2][MAX - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
464 p = new (p) B [2][2][MAX - 99]; // { dg-error "size of (unnamed )?array" } | 465 p = new (p) B [2][2][MAX - 99]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
465 p = new (p) B [2][2][MAX / 2]; // { dg-error "size of (unnamed )?array" } | 466 p = new (p) B [2][2][MAX / 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
466 p = new (p) B [2][2][MAX / 2 - 1]; // { dg-error "size of (unnamed )?array" } | 467 p = new (p) B [2][2][MAX / 2 - 1]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
467 p = new (p) B [2][2][MAX / 2 - 2]; // { dg-error "size of (unnamed )?array" } | 468 p = new (p) B [2][2][MAX / 2 - 2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
468 p = new (p) B [2][2][MAX / 2 - 3]; // { dg-error "size of (unnamed )?array" } | 469 p = new (p) B [2][2][MAX / 2 - 3]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
469 p = new (p) B [2][2][MAX / 2 - 4]; // { dg-error "size of (unnamed )?array" } | 470 p = new (p) B [2][2][MAX / 2 - 4]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
470 p = new (p) B [2][2][MAX / 2 - 5]; // { dg-error "size of (unnamed )?array" } | 471 p = new (p) B [2][2][MAX / 2 - 5]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
471 p = new (p) B [2][2][MAX / 2 - 6]; // { dg-error "size of (unnamed )?array" } | 472 p = new (p) B [2][2][MAX / 2 - 6]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
472 p = new (p) B [2][2][MAX / 2 - 7]; // { dg-error "size of (unnamed )?array" } | 473 p = new (p) B [2][2][MAX / 2 - 7]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
473 p = new (p) B [2][2][MAX / 2 - 8]; // { dg-error "size of (unnamed )?array" } | 474 p = new (p) B [2][2][MAX / 2 - 8]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
474 p = new (p) B [2][2][MAX / 4]; // { dg-error "size of array" } | 475 p = new (p) B [2][2][MAX / 4]; // { dg-error "size .\[0-9\]+. of array" } |
475 p = new (p) B [2][2][MAX / 4 - 1]; // { dg-error "size of array" } | 476 p = new (p) B [2][2][MAX / 4 - 1]; // { dg-error "size .\[0-9\]+. of array" } |
476 p = new (p) B [2][2][MAX / 4 - 2]; // { dg-error "size of array" } | 477 p = new (p) B [2][2][MAX / 4 - 2]; // { dg-error "size .\[0-9\]+. of array" } |
477 | 478 |
478 // Avoid exercising data model-dependent expressions. | 479 // Avoid exercising data model-dependent expressions. |
479 // p = new (p) B [2][2][MAX / 8]; | 480 // p = new (p) B [2][2][MAX / 8]; |
480 // p = new (p) B [2][2][MAX / 8 - 1]; | 481 // p = new (p) B [2][2][MAX / 8 - 1]; |
481 | 482 |
482 p = new (p) B [2][2][MAX / 8 - 2]; | 483 p = new (p) B [2][2][MAX / 8 - 2]; |
483 p = new (p) B [2][2][MAX / 8 - 3]; | 484 p = new (p) B [2][2][MAX / 8 - 3]; |
484 | 485 |
485 p = new (p) B [2][MAX][2]; // { dg-error "size of (unnamed )?array" } | 486 p = new (p) B [2][MAX][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
486 p = new (p) B [2][MAX - 1][2]; // { dg-error "size of (unnamed )?array" } | 487 p = new (p) B [2][MAX - 1][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
487 p = new (p) B [2][MAX - 2][2]; // { dg-error "size of (unnamed )?array" } | 488 p = new (p) B [2][MAX - 2][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
488 p = new (p) B [2][MAX - 99][2]; // { dg-error "size of (unnamed )?array" } | 489 p = new (p) B [2][MAX - 99][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
489 p = new (p) B [2][MAX / 2][2]; // { dg-error "size of (unnamed )?array" } | 490 p = new (p) B [2][MAX / 2][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
490 p = new (p) B [2][MAX / 2 - 1][2]; // { dg-error "size of (unnamed )?array" } | 491 p = new (p) B [2][MAX / 2 - 1][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
491 p = new (p) B [2][MAX / 2 - 2][2]; // { dg-error "size of (unnamed )?array" } | 492 p = new (p) B [2][MAX / 2 - 2][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
492 p = new (p) B [2][MAX / 2 - 3][2]; // { dg-error "size of (unnamed )?array" } | 493 p = new (p) B [2][MAX / 2 - 3][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
493 p = new (p) B [2][MAX / 2 - 4][2]; // { dg-error "size of (unnamed )?array" } | 494 p = new (p) B [2][MAX / 2 - 4][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
494 p = new (p) B [2][MAX / 2 - 5][2]; // { dg-error "size of (unnamed )?array" } | 495 p = new (p) B [2][MAX / 2 - 5][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
495 p = new (p) B [2][MAX / 2 - 6][2]; // { dg-error "size of (unnamed )?array" } | 496 p = new (p) B [2][MAX / 2 - 6][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
496 p = new (p) B [2][MAX / 2 - 7][2]; // { dg-error "size of (unnamed )?array" } | 497 p = new (p) B [2][MAX / 2 - 7][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
497 p = new (p) B [2][MAX / 2 - 8][2]; // { dg-error "size of (unnamed )?array" } | 498 p = new (p) B [2][MAX / 2 - 8][2]; // { dg-error "size .\[0-9\]+. of (unnamed )?array" } |
498 p = new (p) B [2][MAX / 4][2]; // { dg-error "size of array" } | 499 p = new (p) B [2][MAX / 4][2]; // { dg-error "size .\[0-9\]+. of array" } |
499 p = new (p) B [2][MAX / 4 - 1][2]; // { dg-error "size of array" } | 500 p = new (p) B [2][MAX / 4 - 1][2]; // { dg-error "size .\[0-9\]+. of array" } |
500 p = new (p) B [2][MAX / 4 - 2][2]; // { dg-error "size of array" } | 501 p = new (p) B [2][MAX / 4 - 2][2]; // { dg-error "size .\[0-9\]+. of array" } |
501 | 502 |
502 // Avoid exercising data model-dependent expressions. | 503 // Avoid exercising data model-dependent expressions. |
503 // p = new (p) B [2][MAX / 8][2]; | 504 // p = new (p) B [2][MAX / 8][2]; |
504 // p = new (p) B [2][MAX / 8 - 1][2]; | 505 // p = new (p) B [2][MAX / 8 - 1][2]; |
505 | 506 |
506 p = new (p) B [2][MAX / 8 - 2][2]; | 507 p = new (p) B [2][MAX / 8 - 2][2]; |
507 p = new (p) B [2][MAX / 8 - 3][2]; | 508 p = new (p) B [2][MAX / 8 - 3][2]; |
508 | 509 |
509 p = new (p) B [MAX][2][2]; // { dg-error "size of array" } | 510 p = new (p) B [MAX][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
510 p = new (p) B [MAX - 1][2][2]; // { dg-error "size of array" } | 511 p = new (p) B [MAX - 1][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
511 p = new (p) B [MAX - 2][2][2]; // { dg-error "size of array" } | 512 p = new (p) B [MAX - 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
512 p = new (p) B [MAX - 99][2][2]; // { dg-error "size of array" } | 513 p = new (p) B [MAX - 99][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
513 p = new (p) B [MAX / 2][2][2]; // { dg-error "size of array" } | 514 p = new (p) B [MAX / 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
514 p = new (p) B [MAX / 2 - 1][2][2]; // { dg-error "size of array" } | 515 p = new (p) B [MAX / 2 - 1][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
515 p = new (p) B [MAX / 2 - 2][2][2]; // { dg-error "size of array" } | 516 p = new (p) B [MAX / 2 - 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
516 p = new (p) B [MAX / 2 - 3][2][2]; // { dg-error "size of array" } | 517 p = new (p) B [MAX / 2 - 3][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
517 p = new (p) B [MAX / 2 - 4][2][2]; // { dg-error "size of array" } | 518 p = new (p) B [MAX / 2 - 4][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
518 p = new (p) B [MAX / 2 - 5][2][2]; // { dg-error "size of array" } | 519 p = new (p) B [MAX / 2 - 5][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
519 p = new (p) B [MAX / 2 - 6][2][2]; // { dg-error "size of array" } | 520 p = new (p) B [MAX / 2 - 6][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
520 p = new (p) B [MAX / 2 - 7][2][2]; // { dg-error "size of array" } | 521 p = new (p) B [MAX / 2 - 7][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
521 p = new (p) B [MAX / 2 - 8][2][2]; // { dg-error "size of array" } | 522 p = new (p) B [MAX / 2 - 8][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
522 p = new (p) B [MAX / 4][2][2]; // { dg-error "size of array" } | 523 p = new (p) B [MAX / 4][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
523 p = new (p) B [MAX / 4 - 1][2][2]; // { dg-error "size of array" } | 524 p = new (p) B [MAX / 4 - 1][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
524 p = new (p) B [MAX / 4 - 2][2][2]; // { dg-error "size of array" } | 525 p = new (p) B [MAX / 4 - 2][2][2]; // { dg-error "size .\[0-9\]+. of array" } |
525 | 526 |
526 // Avoid exercising data model-dependent expressions. | 527 // Avoid exercising data model-dependent expressions. |
527 // p = new (p) B [MAX / 8][2][2]; | 528 // p = new (p) B [MAX / 8][2][2]; |
528 // p = new (p) B [MAX / 8 - 1][2][2]; | 529 // p = new (p) B [MAX / 8 - 1][2][2]; |
529 | 530 |