aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c
blob: 128f11e900017936302dc50c1aa81ec0109d5e9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* Tail call optimizations would reverse the order of multiplications
   in func().  */

void abort (void);
void exit (int);

double func (const double *array)
{
  double d = *array;
  if (d == 1.0)
    return d;
  else
    return d * func (array + 1);
}

int main ()
{
  double values[] = { __DBL_MAX__, 2.0, 0.5, 1.0 };
  if (func (values) != __DBL_MAX__)
    abort ();
  exit (0);
}