modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/acc2.c (about)

     1  /* Tail call optimizations would reverse the order of multiplications
     2     in func().  */
     3  
     4  double func (const double *array)
     5  {
     6    double d = *array;
     7    if (d == 1.0)
     8      return d;
     9    else
    10      return d * func (array + 1);
    11  }
    12  
    13  int main ()
    14  {
    15    double values[] = { __DBL_MAX__, 2.0, 0.5, 1.0 };
    16    if (func (values) != __DBL_MAX__)
    17      abort ();
    18    exit (0);
    19  }