volatile double a, *p;

int main ()
{
  double c, d;
  volatile double b;

  d = 1.0;
  p = &b;
  do
  {
    c = d;
    d = c * 0.5;
    b = 1 + d;
  } while (b != 1.0);

  a = 1.0 + c;
  if (a == 1.0)
    abort();

  exit (0);
}
