diff -r aef32856eeb5 -r e3616f6b6959 stage3/constant_folding.cc --- a/stage3/constant_folding.cc Fri Jul 20 23:18:32 2012 +0200 +++ b/stage3/constant_folding.cc Thu Aug 16 18:28:23 2012 +0100 @@ -752,7 +752,7 @@ * However, the positive value cannot be stored inside an int64! So, in this case, we will get the value from the uint64 cvalue. */ // if (INT64_MIN == -INT64_MAX - 1) // We do not really need to check that the platform uses two's complement - if (VALID_CVALUE(uint64, symbol->exp) && (GET_CVALUE(uint64, symbol->exp) == -INT64_MIN)) { // How do we stop the compiler from complaining about a comparison between int and unsigned int? + if (VALID_CVALUE(uint64, symbol->exp) && (GET_CVALUE(uint64, symbol->exp) == (uint64_t)INT64_MAX+1)) { SET_CVALUE(int64, symbol, INT64_MIN); } return NULL;