Let's not get too alarmed by this "bug"; I'd argue that the real bug is in the C standard. No compiler will let signed negation be anything but that same operation in the same-width unsigned type. The GCC bug report involves two operand sizes, and is indeed invalid. -- Torbjörn