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

     1  /* PR rtl-optimization/28634.  On targets with delayed branches,
     2     dbr_schedule could do the next iteration's addition in the
     3     branch delay slot, then subtract the value again if the branch
     4     wasn't taken.  This can lead to rounding errors.  */
     5  double x = -0x1.0p53;
     6  double y = 1;
     7  int
     8  main (void)
     9  {
    10    while (y > 0)
    11      y += x;
    12    if (y != x + 1)
    13      abort ();
    14    exit (0);
    15  }