From 4493660411b96a156c4ff20f3162d4b0946c4697 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Sat, 17 Dec 2016 09:57:34 +0300 Subject: [PATCH] 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. --- mark.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) { -- 2.40.0