This fixes a problem I have encountered when using GCC 4.1. I never
trouble with earlier versions of GCC, nor with icc. With newer GCCs,
apparently references to bit-restricted fields keep the bit restriction
in subsequent arithmetic operations. This breaks a lot of the bignum
code, in particular.
I just wanted to let other developers know that bignums are broken with
GCC 4.X + optimization, period. The patch mentioned above does fix
things up a little, but what appears to be a GCC code generation bug
breaks bignums badly if any optimization whatsoever is turned on. See
gcc bug 28045 for more information.
I would still like to commit the patch mentioned above, if there are no
objections, since my reading of the C99 spec indicates that it is
necessary. On the other hand, I am not a language lawyer.
Jerry James, Assistant Professor james(a)xemacs.org
Computer Science Department http://www.cs.usu.edu/~jerry/
Utah State University