diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-01-23 06:58:38 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-01-23 06:58:38 -0800 |
commit | b333ea2900a2e7c10d7b5cd35bf250c8e2d8d40f (patch) | |
tree | f0cd73c36dd467cefe1506326e6d0c23bda28a8d /sysif.c | |
parent | f64d0bb5e0bfff833936d63849f86510a2328fee (diff) | |
download | txr-b333ea2900a2e7c10d7b5cd35bf250c8e2d8d40f.tar.gz txr-b333ea2900a2e7c10d7b5cd35bf250c8e2d8d40f.tar.bz2 txr-b333ea2900a2e7c10d7b5cd35bf250c8e2d8d40f.zip |
Fix some instances of 4 bytes = 32 bits assumption.
* hash.c (equal_hash, eql_hash, cobj_eq_hash_op,
hash_hash_op): Multiply object size by CHAR_BIT and switch on
number of bits, rather than bytes.
* sysif.c (off_t_num): Likewise.
* arith.c, ffi.c, itypes.c, rand.c: In numerous #if directive,
fix size tests from bytes to bits.
* configure: in the test that detects integer types, and in
the test for enabling large file offsets, detect one more
variable from the system: the value of CHAR_BIT. This
turns into SIZEOF_BYTE. We use that value instead of a
hard-coded 8.
Diffstat (limited to 'sysif.c')
-rw-r--r-- | sysif.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1332,10 +1332,10 @@ static val crypt_wrap(val wkey, val wsalt) off_t off_t_num(val num, val self) { - switch (sizeof(off_t)) { - case 4: + switch (CHAR_BIT * sizeof(off_t)) { + case 32: return c_i32(num, self); - case 8: + case 64: return c_i64(num, self); default: internal_error("portme: unsupported off_t size"); |