summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr55107.c
blob: 2402716be3015332977e30e65acd18d966ff915c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* { dg-do compile } */

typedef unsigned short uint16_t;

uint16_t a, b;

uint16_t f(void)
{
  int c, **p;
  short d = 2, e = 4;

  for (;; b++)
    {
      int *j, k = 0;

      for (; *j; j++)
	{
	  for(; c; c++)
	    for(; k < 1; k++)
	      {
		short *f = &d;

		if(b)
		  return *f;
	      }
	}

      if(!c)
	d *= e;

      ((a = d) ? b = 0 : (**p ? : 1) != (d != 1 ? : (a = 0))) != (k ? a : 0)
	  < (a *= c = k) && (**p = 0);
    }
}