ref: a4555311d608affb0ac44197efd6fbde2617b433
parent: b1573af3e04e04b2046eb0d2ef9dd92727b16ea6
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Tue Mar 14 15:03:58 EDT 2023
(U)INT_{MIN,MAX} -> (U)INT32_{MIN,MAX}
--- a/cvalues.c
+++ b/cvalues.c
@@ -1016,10 +1016,10 @@
if (Uaccum > (uint64_t)INT64_MAX) {
RETURN_NUM_AS(Uaccum, uint64);
}
- else if (Uaccum > (uint64_t)UINT_MAX) {
+ else if (Uaccum > (uint64_t)UINT32_MAX) {
RETURN_NUM_AS(Uaccum, int64);
}
- else if (Uaccum > (uint64_t)INT_MAX) {
+ else if (Uaccum > (uint64_t)INT32_MAX) {
RETURN_NUM_AS(Uaccum, uint32);
}
RETURN_NUM_AS(Uaccum, int32);
@@ -1030,10 +1030,10 @@
if (fits_fixnum(Saccum)) {
return fixnum((fixnum_t)Saccum);
}
- if (Saccum > (int64_t)UINT_MAX || Saccum < (int64_t)INT_MIN) {
+ if (Saccum > (int64_t)UINT32_MAX || Saccum < (int64_t)INT32_MIN) {
RETURN_NUM_AS(Saccum, int64);
}
- else if (Saccum > (int64_t)INT_MAX) {
+ else if (Saccum > (int64_t)INT32_MAX) {
RETURN_NUM_AS(Saccum, uint32);
}
RETURN_NUM_AS(Saccum, int32);
@@ -1092,7 +1092,7 @@
if (negpart > Uaccum) {
Saccum += (int64_t)Uaccum;
// return value in Saccum
- if (Saccum >= INT_MIN) {
+ if (Saccum >= INT32_MIN) {
if (fits_fixnum(Saccum)) {
return fixnum((fixnum_t)Saccum);
}
@@ -1136,7 +1136,7 @@
return mk_int32(-i32);
case T_UINT32:
ui32 = *(uint32_t*)a;
- if (ui32 <= ((uint32_t)INT_MAX)+1) return mk_int32(-(int32_t)ui32);
+ if (ui32 <= ((uint32_t)INT32_MAX)+1) return mk_int32(-(int32_t)ui32);
return mk_int64(-(int64_t)ui32);
case T_INT64:
i64 = *(int64_t*)a;
@@ -1202,7 +1202,7 @@
}
else if (Saccum < 0) {
Saccum *= (int64_t)Uaccum;
- if (Saccum >= INT_MIN) {
+ if (Saccum >= INT32_MIN) {
if (fits_fixnum(Saccum)) {
return fixnum((fixnum_t)Saccum);
}
--- a/llt/llt.h
+++ b/llt/llt.h
@@ -30,14 +30,14 @@
#define bswap_16(x) (((x) & 0x00ff) << 8 | ((x) & 0xff00) >> 8)
#define bswap_32(x) \
- ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
- (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
+ ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
#define bswap_64(x) \
(uint64_t)bswap_32((x) & 0xffffffffULL)<<32 | \
(uint64_t)bswap_32(((x)>>32) & 0xffffffffULL)
-#define DBL_MAXINT 9007199254740992LL
-#define FLT_MAXINT 16777216
+#define DBL_MAXINT (1LL<<53)
+#define FLT_MAXINT (1<<24)
#define BIT63 0x8000000000000000ULL
#define BIT31 0x80000000UL
--- a/operators.c
+++ b/operators.c
@@ -21,7 +21,7 @@
fp = fpart(r);
if (fp != 0 || r > (double)INT64_MAX || r < INT64_MIN)
return T_DOUBLE;
- else if (r >= INT_MIN && r <= INT_MAX)
+ else if (r >= INT32_MIN && r <= INT32_MAX)
return T_INT32;
else if (r <= (double)INT64_MAX)
return T_INT64;
--- a/plan9/platform.h
+++ b/plan9/platform.h
@@ -46,9 +46,9 @@
#endif
#define NULL nil
-#define INT_MAX 0x7fffffff
-#define UINT_MAX 0xffffffffU
-#define INT_MIN (-INT_MAX-1)
+#define INT32_MAX 0x7fffffff
+#define UINT32_MAX 0xffffffffU
+#define INT32_MIN (-INT32_MAX-1)
#define INT64_MIN ((int64_t)0x8000000000000000LL)
#define INT64_MAX 0x7fffffffffffffffLL
#define UINT64_MAX 0xffffffffffffffffULL
--- a/test/unittest.lsp
+++ b/test/unittest.lsp
@@ -60,7 +60,7 @@
(assert (not (eqv? 10 #\newline)))
(assert (not (eqv? #\newline 10)))
-; tricky cases involving INT_MIN
+; tricky cases involving INT32_MIN
(assert (< (- #uint32(0x80000000)) 0))
(assert (> (- #int32(0x80000000)) 0))
(assert (< (- #uint64(0x8000000000000000)) 0))