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

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