------- Comment #4 from pinskia at gcc dot gnu dot org 2007-03-13 22:35 ------- unsigned is never promoted, it always stays unsigned. So -0x80000000 == 0x80000000 :).
Try adding ULL (or UL) if you want an unsigned long long (unsigned long) constant. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31166