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