summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/20011219-1.c
blob: 04923092dff0f38afcd5eda919e314f638fdcdba (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
/* This testcase failed on IA-64 at -O2 during scheduling.  */

void * baz (unsigned long);
static inline double **
bar (long w, long x, long y, long z)
{
  long i, a = x - w + 1, b = z - y + 1;
  double **m = (double **) baz (sizeof (double *) * (a + 1));

  m += 1;
  m -= w;
  m[w] = (double *) baz (sizeof (double) * (a * b + 1));
  m[w] += 1;
  m[w] -= y;
  for (i = w + 1; i <= x; i++)
    m[i] = m[i - 1] + b;
  return m;
}

void
foo (double w[], int x, double y[], double z[])
{
  int i;
  double **a;

  a = bar (1, 50, 1, 50);
  for (i = 1; i <= x; i++)
    a[1][i] = - w[x - i] / w[x];
}