1<<32
Today I found, the hard way, that when the C standard says (1<<32) is undefined (ISO/IEC 9899:1999 section 6.5.7 paragraph 3) on a 32-bit architecture, it really means it. Really. Even on your Pentium 4 and gcc.
The x86 architecture is actually one of the big reasons why (1 << 32) is undefined... the left shift instruction ignores all but the low five bits of the shift-count operand. Bleah.