1 /* { dg-do compile } */
2 /* { dg-additional-options "-fno-split-loops -w" } */
3 
4 typedef unsigned short uint16_t;
5 
6 uint16_t a, b;
7 
f(void)8 uint16_t f(void)
9 {
10   int c, **p;
11   short d = 2, e = 4;
12 
13   for (;; b++)
14     {
15       int *j, k = 0;
16 
17       for (; *j; j++)
18 	{
19 	  for(; c; c++)
20 	    for(; k < 1; k++)
21 	      {
22 		short *f = &d;
23 
24 		if(b)
25 		  return *f;
26 	      }
27 	}
28 
29       if(!c)
30 	d *= e;
31 
32       ((a = d) ? b = 0 : (**p ? : 1) != (d != 1 ? : (a = 0))) != (k ? a : 0)
33 	  < (a *= c = k) && (**p = 0);
34     }
35 }
36