From: Ivan Maidanski Date: Sat, 17 Dec 2016 06:57:34 +0000 (+0300) Subject: Workaround 'checking unsigned value is negative' code defect in mark_from X-Git-Tag: v8.0.0~984 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4493660411b96a156c4ff20f3162d4b0946c4697;p=gc Workaround 'checking unsigned value is negative' code defect in mark_from * mark.c (GC_mark_from): Replace (signed_word)descr<0 with (descr&SIGNB)!=0. --- diff --git a/mark.c b/mark.c index 6db0bb01..dec761b9 100644 --- a/mark.c +++ b/mark.c @@ -727,7 +727,7 @@ GC_INNER mse * GC_mark_from(mse *mark_stack_top, mse *mark_stack, descr &= ~GC_DS_TAGS; credit -= WORDS_TO_BYTES(WORDSZ/2); /* guess */ while (descr != 0) { - if ((signed_word)descr < 0) { + if ((descr & SIGNB) != 0) { current = *(word *)current_p; FIXUP_POINTER(current); if (current >= (word)least_ha && current < (word)greatest_ha) {