union u
{
  struct {unsigned h, l;} i;
  double d;
};

foo (union u x)
{
  while (x.i.h++)
    {
      while (x.i.l-- > 0)
	;
      while (x.d++ > 0)
	;
    }
}

union n
{
  long long unsigned i;
  double d;
};

bar (union n x)
{
  int i;
  for (i = 0; i < 100; i++)
    {
      while (--x.i > 0)
	;
      while (++x.d > 0)
	;
    }
  return x.i;
}

