* allchblk.c [MARK_BIT_PER_OBJ] (setup_header): Fix comment
(sz*inv_sz>=2**32).
* allchblk.c [MARK_BIT_PER_OBJ && INV_SZ_COMPUTATION_CHECK]
(setup_header): Add assertion to check the computation of inv_sz.
# ifdef MARK_BIT_PER_OBJ
/* Set hb_inv_sz as portably as possible. */
- /* We set it to the smallest value such that sz * inv_sz > 2**32 */
+ /* We set it to the smallest value such that sz * inv_sz >= 2**32 */
/* This may be more precision than necessary. */
if (byte_sz > MAXOBJBYTES) {
hhdr -> hb_inv_sz = LARGE_INV_SZ;
inv_sz *= 2;
while (inv_sz*byte_sz > byte_sz) ++inv_sz;
# endif
+# ifdef INV_SZ_COMPUTATION_CHECK
+ GC_ASSERT(((1ULL << 32) + byte_sz - 1) / byte_sz == inv_sz);
+# endif
hhdr -> hb_inv_sz = inv_sz;
}
# endif