xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.c-torture/compile/20011109-1.c (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1 typedef struct { short x[4]; } S;
2 typedef struct { unsigned int a, b, c; S *d; } T;
3 
4 S *(*foo) (T *, int, int, int, int);
5 unsigned short *(*bar)(const T *);
6 unsigned short baz(T *,const int);
7 
die(void)8 T *die (void)
9 {
10   typedef struct { unsigned int a, b, e; double f, g; } U;
11 
12   char h[8], i[2053], j[2053];
13   double k, l, m;
14   U n;
15   T *o;
16   unsigned short p;
17   int q, r;
18   long s;
19   unsigned short *t;
20   S *u;
21   unsigned char *v, *w;
22   unsigned int x;
23 
24   o = 0;
25   for (x = 0; x < n.e; x++)
26     {
27       l = 1.0;
28       if (n.g - n.f <= 1.0)
29 	l = ((1 << o->c) - 1) / (n.g - n.f);
30       v = w;
31       for (r = o->b - 1; r >= 0; r--)
32 	{
33 	  u = foo (o, 0, r, o->a, 1);
34 	  if (!u)
35 	    break;
36 	  t = bar (o);
37 	  for (q = 0; q < (int) o->a; q++)
38 	    {
39 	      h[0] = *v;
40 	      s = *v++;
41 	      k = (double) s;
42 	      m = l*k;
43 	      p = m < 0 ? 0 : m > (1 << o->c) - 1 ? (1 << o->c) - 1 : m + 0.5;
44 	      p = baz (o,p);
45 	      t[q] = p;
46 	      *u++ = o->d[p];
47 	    }
48 	}
49     }
50   return o;
51 }
52