* mark.c (GC_push_marked): Cast (h+1)->hb_body to word before
subtraction of sz value (and cast the result back to ptr_t).
* mark.c [ENABLE_DISCLAIM] (GC_push_unconditionally): Likewise.
if (sz > MAXOBJBYTES) {
lim = h -> hb_body;
} else {
- lim = (h + 1)->hb_body - sz;
+ lim = (ptr_t)((word)(h + 1)->hb_body - sz);
}
switch(BYTES_TO_GRANULES(sz)) {
if (sz > MAXOBJBYTES)
lim = h -> hb_body;
else
- lim = (h + 1)->hb_body - sz;
+ lim = (ptr_t)((word)(h + 1)->hb_body - sz);
GC_mark_stack_top_reg = GC_mark_stack_top;
for (p = h -> hb_body; (word)p <= (word)lim; p += sz)