equal
deleted
inserted
replaced
750 /* NOTE 1: INT64_MIN = -(INT64_MAX + 1) ---> assuming two's complement representation!!! |
750 /* NOTE 1: INT64_MIN = -(INT64_MAX + 1) ---> assuming two's complement representation!!! |
751 * NOTE 2: if the user happens to want INT_MIN, that value will first be parsed as a positive integer, before being negated here. |
751 * NOTE 2: if the user happens to want INT_MIN, that value will first be parsed as a positive integer, before being negated here. |
752 * However, the positive value cannot be stored inside an int64! So, in this case, we will get the value from the uint64 cvalue. |
752 * However, the positive value cannot be stored inside an int64! So, in this case, we will get the value from the uint64 cvalue. |
753 */ |
753 */ |
754 // if (INT64_MIN == -INT64_MAX - 1) // We do not really need to check that the platform uses two's complement |
754 // if (INT64_MIN == -INT64_MAX - 1) // We do not really need to check that the platform uses two's complement |
755 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? |
755 if (VALID_CVALUE(uint64, symbol->exp) && (GET_CVALUE(uint64, symbol->exp) == (uint64_t)INT64_MAX+1)) { |
756 SET_CVALUE(int64, symbol, INT64_MIN); |
756 SET_CVALUE(int64, symbol, INT64_MIN); |
757 } |
757 } |
758 return NULL; |
758 return NULL; |
759 } |
759 } |
760 |
760 |