1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mstv" } */
3 
4 #define max(a,b) (((a) > (b))? (a) : (b))
5 #define min(a,b) (((a) < (b))? (a) : (b))
6 
7 int ssi[1024];
8 unsigned int usi[1024];
9 long long sdi[1024];
10 unsigned long long udi[1024];
11 
12 #define CHECK(FN, VARIANT) \
13 void \
14 FN ## VARIANT (void) \
15 { \
16   for (int i = 1; i < 1024; ++i) \
17     VARIANT[i] = FN(VARIANT[i-1], VARIANT[i]); \
18 }
19 
20 CHECK(max, ssi);
21 CHECK(min, ssi);
22 CHECK(max, usi);
23 CHECK(min, usi);
24 CHECK(max, sdi);
25 CHECK(min, sdi);
26 CHECK(max, udi);
27 CHECK(min, udi);
28