summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/20020330-1.c
blob: cac7099127f2632b328a8c3bceafbccd2d19346d (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
/* PR 5446 */
/* This testcase is similar to gcc.c-torture/compile/20011219-1.c except
   with parts of it omitted, causing an ICE with -O3 on IA-64.  */

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));
  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);
}