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