1 /* Test redefinitions differing only in the spelling of paste and
2    stringify tokens, whitespace around them, or the number of
3    consecutive paste tokens.  */
4 /* { dg-do preprocess } */
5 /* { dg-options "" } */
6 
7 #define str(x) #x /* { dg-message "previous definition" } */
8 #define str(x) %: x /* { dg-warning "redefined" } */
9 #undef str
10 #define str(x) #x /* { dg-message "previous definition" } */
11 #define str(x) # x /* { dg-warning "redefined" } */
12 #undef str
13 #define str(x) #x /* { dg-message "previous definition" } */
14 #define str(x) %: x /* { dg-warning "redefined" } */
15 #undef str
16 #define str(x) %:x /* { dg-message "previous definition" } */
17 #define str(x) #x /* { dg-warning "redefined" } */
18 #undef str
19 #define str(x) %:x /* { dg-message "previous definition" } */
20 #define str(x) %: x /* { dg-warning "redefined" } */
21 #undef str
22 #define str(x) %:x /* { dg-message "previous definition" } */
23 #define str(x) # x /* { dg-warning "redefined" } */
24 #undef str
25 #define str(x) %:x /* { dg-message "previous definition" } */
26 #define str(x) %: x /* { dg-warning "redefined" } */
27 #undef str
28 #define str(x) # x /* { dg-message "previous definition" } */
29 #define str(x) #x /* { dg-warning "redefined" } */
30 #undef str
31 #define str(x) # x /* { dg-message "previous definition" } */
32 #define str(x) %: x /* { dg-warning "redefined" } */
33 #undef str
34 #define str(x) # x /* { dg-message "previous definition" } */
35 #define str(x) %: x /* { dg-warning "redefined" } */
36 #undef str
37 #define str(x) %: x /* { dg-message "previous definition" } */
38 #define str(x) #x /* { dg-warning "redefined" } */
39 #undef str
40 #define str(x) %: x /* { dg-message "previous definition" } */
41 #define str(x) # x /* { dg-warning "redefined" } */
42 #undef str
43 
44 #define str(x) #x
45 #define str(x) #x
46 #undef str
47 #define str(x) # x
48 #define str(x) # x
49 #undef str
50 #define str(x) %: x
51 #define str(x) %: x
52 #undef str
53 #define str(x) %: x
54 #define str(x) %: x
55 #undef str
56 
57 #define astr(x) a#x /* { dg-message "previous definition" } */
58 #define astr(x) a%: x /* { dg-warning "redefined" } */
59 #undef astr
60 #define astr(x) a#x /* { dg-message "previous definition" } */
61 #define astr(x) a# x /* { dg-warning "redefined" } */
62 #undef astr
63 #define astr(x) a#x /* { dg-message "previous definition" } */
64 #define astr(x) a%: x /* { dg-warning "redefined" } */
65 #undef astr
66 #define astr(x) a#x /* { dg-message "previous definition" } */
67 #define astr(x) a #x /* { dg-warning "redefined" } */
68 #undef astr
69 #define astr(x) a#x /* { dg-message "previous definition" } */
70 #define astr(x) a %:x /* { dg-warning "redefined" } */
71 #undef astr
72 #define astr(x) a#x /* { dg-message "previous definition" } */
73 #define astr(x) a # x /* { dg-warning "redefined" } */
74 #undef astr
75 #define astr(x) a#x /* { dg-message "previous definition" } */
76 #define astr(x) a %: x /* { dg-warning "redefined" } */
77 #undef astr
78 #define astr(x) a%:x /* { dg-message "previous definition" } */
79 #define astr(x) a#x /* { dg-warning "redefined" } */
80 #undef astr
81 #define astr(x) a%:x /* { dg-message "previous definition" } */
82 #define astr(x) a%: x /* { dg-warning "redefined" } */
83 #undef astr
84 #define astr(x) a%:x /* { dg-message "previous definition" } */
85 #define astr(x) a# x /* { dg-warning "redefined" } */
86 #undef astr
87 #define astr(x) a%:x /* { dg-message "previous definition" } */
88 #define astr(x) a%: x /* { dg-warning "redefined" } */
89 #undef astr
90 #define astr(x) a%:x /* { dg-message "previous definition" } */
91 #define astr(x) a #x /* { dg-warning "redefined" } */
92 #undef astr
93 #define astr(x) a%:x /* { dg-message "previous definition" } */
94 #define astr(x) a %:x /* { dg-warning "redefined" } */
95 #undef astr
96 #define astr(x) a%:x /* { dg-message "previous definition" } */
97 #define astr(x) a # x /* { dg-warning "redefined" } */
98 #undef astr
99 #define astr(x) a%:x /* { dg-message "previous definition" } */
100 #define astr(x) a %: x /* { dg-warning "redefined" } */
101 #undef astr
102 #define astr(x) a# x /* { dg-message "previous definition" } */
103 #define astr(x) a#x /* { dg-warning "redefined" } */
104 #undef astr
105 #define astr(x) a# x /* { dg-message "previous definition" } */
106 #define astr(x) a%: x /* { dg-warning "redefined" } */
107 #undef astr
108 #define astr(x) a# x /* { dg-message "previous definition" } */
109 #define astr(x) a%: x /* { dg-warning "redefined" } */
110 #undef astr
111 #define astr(x) a# x /* { dg-message "previous definition" } */
112 #define astr(x) a #x /* { dg-warning "redefined" } */
113 #undef astr
114 #define astr(x) a# x /* { dg-message "previous definition" } */
115 #define astr(x) a %:x /* { dg-warning "redefined" } */
116 #undef astr
117 #define astr(x) a# x /* { dg-message "previous definition" } */
118 #define astr(x) a # x /* { dg-warning "redefined" } */
119 #undef astr
120 #define astr(x) a# x /* { dg-message "previous definition" } */
121 #define astr(x) a %: x /* { dg-warning "redefined" } */
122 #undef astr
123 #define astr(x) a%: x /* { dg-message "previous definition" } */
124 #define astr(x) a#x /* { dg-warning "redefined" } */
125 #undef astr
126 #define astr(x) a%: x /* { dg-message "previous definition" } */
127 #define astr(x) a# x /* { dg-warning "redefined" } */
128 #undef astr
129 #define astr(x) a%: x /* { dg-message "previous definition" } */
130 #define astr(x) a #x /* { dg-warning "redefined" } */
131 #undef astr
132 #define astr(x) a%: x /* { dg-message "previous definition" } */
133 #define astr(x) a %:x /* { dg-warning "redefined" } */
134 #undef astr
135 #define astr(x) a%: x /* { dg-message "previous definition" } */
136 #define astr(x) a # x /* { dg-warning "redefined" } */
137 #undef astr
138 #define astr(x) a%: x /* { dg-message "previous definition" } */
139 #define astr(x) a %: x /* { dg-warning "redefined" } */
140 #undef astr
141 #define astr(x) a #x /* { dg-message "previous definition" } */
142 #define astr(x) a#x /* { dg-warning "redefined" } */
143 #undef astr
144 #define astr(x) a #x /* { dg-message "previous definition" } */
145 #define astr(x) a%: x /* { dg-warning "redefined" } */
146 #undef astr
147 #define astr(x) a #x /* { dg-message "previous definition" } */
148 #define astr(x) a# x /* { dg-warning "redefined" } */
149 #undef astr
150 #define astr(x) a #x /* { dg-message "previous definition" } */
151 #define astr(x) a%: x /* { dg-warning "redefined" } */
152 #undef astr
153 #define astr(x) a #x /* { dg-message "previous definition" } */
154 #define astr(x) a %:x /* { dg-warning "redefined" } */
155 #undef astr
156 #define astr(x) a #x /* { dg-message "previous definition" } */
157 #define astr(x) a # x /* { dg-warning "redefined" } */
158 #undef astr
159 #define astr(x) a #x /* { dg-message "previous definition" } */
160 #define astr(x) a %: x /* { dg-warning "redefined" } */
161 #undef astr
162 #define astr(x) a %:x /* { dg-message "previous definition" } */
163 #define astr(x) a#x /* { dg-warning "redefined" } */
164 #undef astr
165 #define astr(x) a %:x /* { dg-message "previous definition" } */
166 #define astr(x) a%: x /* { dg-warning "redefined" } */
167 #undef astr
168 #define astr(x) a %:x /* { dg-message "previous definition" } */
169 #define astr(x) a# x /* { dg-warning "redefined" } */
170 #undef astr
171 #define astr(x) a %:x /* { dg-message "previous definition" } */
172 #define astr(x) a%: x /* { dg-warning "redefined" } */
173 #undef astr
174 #define astr(x) a %:x /* { dg-message "previous definition" } */
175 #define astr(x) a #x /* { dg-warning "redefined" } */
176 #undef astr
177 #define astr(x) a %:x /* { dg-message "previous definition" } */
178 #define astr(x) a # x /* { dg-warning "redefined" } */
179 #undef astr
180 #define astr(x) a %:x /* { dg-message "previous definition" } */
181 #define astr(x) a %: x /* { dg-warning "redefined" } */
182 #undef astr
183 #define astr(x) a # x /* { dg-message "previous definition" } */
184 #define astr(x) a#x /* { dg-warning "redefined" } */
185 #undef astr
186 #define astr(x) a # x /* { dg-message "previous definition" } */
187 #define astr(x) a%: x /* { dg-warning "redefined" } */
188 #undef astr
189 #define astr(x) a # x /* { dg-message "previous definition" } */
190 #define astr(x) a# x /* { dg-warning "redefined" } */
191 #undef astr
192 #define astr(x) a # x /* { dg-message "previous definition" } */
193 #define astr(x) a%: x /* { dg-warning "redefined" } */
194 #undef astr
195 #define astr(x) a # x /* { dg-message "previous definition" } */
196 #define astr(x) a #x /* { dg-warning "redefined" } */
197 #undef astr
198 #define astr(x) a # x /* { dg-message "previous definition" } */
199 #define astr(x) a %:x /* { dg-warning "redefined" } */
200 #undef astr
201 #define astr(x) a # x /* { dg-message "previous definition" } */
202 #define astr(x) a %: x /* { dg-warning "redefined" } */
203 #undef astr
204 #define astr(x) a %: x /* { dg-message "previous definition" } */
205 #define astr(x) a#x /* { dg-warning "redefined" } */
206 #undef astr
207 #define astr(x) a %: x /* { dg-message "previous definition" } */
208 #define astr(x) a%: x /* { dg-warning "redefined" } */
209 #undef astr
210 #define astr(x) a %: x /* { dg-message "previous definition" } */
211 #define astr(x) a# x /* { dg-warning "redefined" } */
212 #undef astr
213 #define astr(x) a %: x /* { dg-message "previous definition" } */
214 #define astr(x) a%: x /* { dg-warning "redefined" } */
215 #undef astr
216 #define astr(x) a %: x /* { dg-message "previous definition" } */
217 #define astr(x) a #x /* { dg-warning "redefined" } */
218 #undef astr
219 #define astr(x) a %: x /* { dg-message "previous definition" } */
220 #define astr(x) a %:x /* { dg-warning "redefined" } */
221 #undef astr
222 #define astr(x) a %: x /* { dg-message "previous definition" } */
223 #define astr(x) a # x /* { dg-warning "redefined" } */
224 #undef astr
225 
226 #define astr(x) a#x
227 #define astr(x) a#x
228 #undef astr
229 #define astr(x) a# x
230 #define astr(x) a# x
231 #undef astr
232 #define astr(x) a%: x
233 #define astr(x) a%: x
234 #undef astr
235 #define astr(x) a%: x
236 #define astr(x) a%: x
237 #undef astr
238 #define astr(x) a #x
239 #define astr(x) a #x
240 #undef astr
241 #define astr(x) a %:x
242 #define astr(x) a %:x
243 #undef astr
244 #define astr(x) a # x
245 #define astr(x) a # x
246 #undef astr
247 #define astr(x) a %: x
248 #define astr(x) a %: x
249 #undef astr
250 
251 #define cat(x,y) x##y /* { dg-message "previous definition" } */
252 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
253 #undef cat
254 #define cat(x,y) x##y /* { dg-message "previous definition" } */
255 #define cat(x,y) x## y /* { dg-warning "redefined" } */
256 #undef cat
257 #define cat(x,y) x##y /* { dg-message "previous definition" } */
258 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
259 #undef cat
260 #define cat(x,y) x##y /* { dg-message "previous definition" } */
261 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
262 #undef cat
263 #define cat(x,y) x##y /* { dg-message "previous definition" } */
264 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
265 #undef cat
266 #define cat(x,y) x##y /* { dg-message "previous definition" } */
267 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
268 #undef cat
269 #define cat(x,y) x##y /* { dg-message "previous definition" } */
270 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
271 #undef cat
272 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
273 #define cat(x,y) x##y /* { dg-warning "redefined" } */
274 #undef cat
275 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
276 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
277 #undef cat
278 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
279 #define cat(x,y) x## y /* { dg-warning "redefined" } */
280 #undef cat
281 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
282 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
283 #undef cat
284 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
285 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
286 #undef cat
287 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
288 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
289 #undef cat
290 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
291 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
292 #undef cat
293 #define cat(x,y) x%:%:y /* { dg-message "previous definition" } */
294 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
295 #undef cat
296 #define cat(x,y) x## y /* { dg-message "previous definition" } */
297 #define cat(x,y) x##y /* { dg-warning "redefined" } */
298 #undef cat
299 #define cat(x,y) x## y /* { dg-message "previous definition" } */
300 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
301 #undef cat
302 #define cat(x,y) x## y /* { dg-message "previous definition" } */
303 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
304 #undef cat
305 #define cat(x,y) x## y /* { dg-message "previous definition" } */
306 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
307 #undef cat
308 #define cat(x,y) x## y /* { dg-message "previous definition" } */
309 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
310 #undef cat
311 #define cat(x,y) x## y /* { dg-message "previous definition" } */
312 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
313 #undef cat
314 #define cat(x,y) x## y /* { dg-message "previous definition" } */
315 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
316 #undef cat
317 #define cat(x,y) x%:%: y /* { dg-message "previous definition" } */
318 #define cat(x,y) x##y /* { dg-warning "redefined" } */
319 #undef cat
320 #define cat(x,y) x%:%: y /* { dg-message "previous definition" } */
321 #define cat(x,y) x## y /* { dg-warning "redefined" } */
322 #undef cat
323 #define cat(x,y) x%:%: y /* { dg-message "previous definition" } */
324 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
325 #undef cat
326 #define cat(x,y) x%:%: y /* { dg-message "previous definition" } */
327 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
328 #undef cat
329 #define cat(x,y) x%:%: y /* { dg-message "previous definition" } */
330 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
331 #undef cat
332 #define cat(x,y) x%:%: y /* { dg-message "previous definition" } */
333 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
334 #undef cat
335 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
336 #define cat(x,y) x##y /* { dg-warning "redefined" } */
337 #undef cat
338 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
339 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
340 #undef cat
341 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
342 #define cat(x,y) x## y /* { dg-warning "redefined" } */
343 #undef cat
344 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
345 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
346 #undef cat
347 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
348 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
349 #undef cat
350 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
351 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
352 #undef cat
353 #define cat(x,y) x ##y /* { dg-message "previous definition" } */
354 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
355 #undef cat
356 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
357 #define cat(x,y) x##y /* { dg-warning "redefined" } */
358 #undef cat
359 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
360 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
361 #undef cat
362 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
363 #define cat(x,y) x## y /* { dg-warning "redefined" } */
364 #undef cat
365 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
366 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
367 #undef cat
368 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
369 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
370 #undef cat
371 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
372 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
373 #undef cat
374 #define cat(x,y) x %:%:y /* { dg-message "previous definition" } */
375 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
376 #undef cat
377 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
378 #define cat(x,y) x##y /* { dg-warning "redefined" } */
379 #undef cat
380 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
381 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
382 #undef cat
383 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
384 #define cat(x,y) x## y /* { dg-warning "redefined" } */
385 #undef cat
386 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
387 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
388 #undef cat
389 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
390 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
391 #undef cat
392 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
393 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
394 #undef cat
395 #define cat(x,y) x ## y /* { dg-message "previous definition" } */
396 #define cat(x,y) x %:%: y /* { dg-warning "redefined" } */
397 #undef cat
398 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
399 #define cat(x,y) x##y /* { dg-warning "redefined" } */
400 #undef cat
401 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
402 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
403 #undef cat
404 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
405 #define cat(x,y) x## y /* { dg-warning "redefined" } */
406 #undef cat
407 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
408 #define cat(x,y) x%:%: y /* { dg-warning "redefined" } */
409 #undef cat
410 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
411 #define cat(x,y) x ##y /* { dg-warning "redefined" } */
412 #undef cat
413 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
414 #define cat(x,y) x %:%:y /* { dg-warning "redefined" } */
415 #undef cat
416 #define cat(x,y) x %:%: y /* { dg-message "previous definition" } */
417 #define cat(x,y) x ## y /* { dg-warning "redefined" } */
418 #undef cat
419 
420 #define cat(x,y) x##y
421 #define cat(x,y) x##y
422 #undef cat
423 #define cat(x,y) x## y
424 #define cat(x,y) x## y
425 #undef cat
426 #define cat(x,y) x%:%: y
427 #define cat(x,y) x%:%: y
428 #undef cat
429 #define cat(x,y) x%:%: y
430 #define cat(x,y) x%:%: y
431 #undef cat
432 #define cat(x,y) x ##y
433 #define cat(x,y) x ##y
434 #undef cat
435 #define cat(x,y) x %:%:y
436 #define cat(x,y) x %:%:y
437 #undef cat
438 #define cat(x,y) x ## y
439 #define cat(x,y) x ## y
440 #undef cat
441 #define cat(x,y) x %:%: y
442 #define cat(x,y) x %:%: y
443 #undef cat
444 
445 #define cat3(x,y,z) x##y##z /* { dg-message "previous definition" } */
446 #define cat3(x,y,z) x##y####z /* { dg-warning "redefined" } */
447 #undef cat3
448 
449 #define cat3(x,y,z) x##y####z /* { dg-message "previous definition" } */
450 #define cat3(x,y,z) x####y##z /* { dg-warning "redefined" } */
451 #undef cat3
452 
453 #define cat3(x,y,z) x##y####z /* { dg-message "previous definition" } */
454 #define cat3(x,y,z) x##y## ##z /* { dg-warning "redefined" } */
455 #undef cat3
456 
457 #define cat3(x,y,z) x##y####z /* { dg-message "previous definition" } */
458 #define cat3(x,y,z) x##y##%:%:z /* { dg-warning "redefined" } */
459 #undef cat3
460 
461 #define cat3(x,y,z) x##y######## ####z /* { dg-message "previous definition" } */
462 #define cat3(x,y,z) x##y############z /* { dg-warning "redefined" } */
463 #undef cat3
464 
465 #define cat3(x,y,z) x##y############z /* { dg-message "previous definition" } */
466 #define cat3(x,y,z) x##y########%:%:##z /* { dg-warning "redefined" } */
467 #undef cat3
468 
469 #define cat3(x,y,z) x##y##z
470 #define cat3(x,y,z) x##y##z
471 #undef cat3
472 
473 #define cat3(x,y,z) x##y####z
474 #define cat3(x,y,z) x##y####z
475 #undef cat3
476 
477 #define cat3(x,y,z) x####y##z
478 #define cat3(x,y,z) x####y##z
479 #undef cat3
480 
481 #define cat3(x,y,z) x##y## ##z
482 #define cat3(x,y,z) x##y## ##z
483 #undef cat3
484 
485 #define cat3(x,y,z) x##y##%:%:z
486 #define cat3(x,y,z) x##y##%:%:z
487 #undef cat3
488 
489 #define cat3(x,y,z) x##y######## ####z
490 #define cat3(x,y,z) x##y######## ####z
491 #undef cat3
492 
493 #define cat3(x,y,z) x##y############z
494 #define cat3(x,y,z) x##y############z
495 #undef cat3
496 
497 #define cat3(x,y,z) x##y########%:%:##z
498 #define cat3(x,y,z) x##y########%:%:##z
499 #undef cat3
500