From: Ivan Maidanski Date: Thu, 17 Nov 2016 07:23:53 +0000 (+0300) Subject: Fix assertion violation in mark_local checking GC_mark_stack_top X-Git-Tag: v7.6.2~334 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=719f7789195508db9e4b6e6ff7dd4f8022c20265;p=gc Fix assertion violation in mark_local checking GC_mark_stack_top * mark.c (GC_mark_local): Replace AO_load with AO_load_acquire in the assertion comparing global_first_nonempty to GC_mark_stack_top. --- diff --git a/mark.c b/mark.c index 06a0b4ba..81360307 100644 --- a/mark.c +++ b/mark.c @@ -1074,7 +1074,7 @@ STATIC void GC_mark_local(mse *local_mark_stack, int id) + sizeof(mse)); GC_ASSERT((word)global_first_nonempty >= (word)GC_mark_stack && (word)global_first_nonempty <= - (word)AO_load((volatile AO_t *)&GC_mark_stack_top) + (word)AO_load_acquire((volatile AO_t *)&GC_mark_stack_top) + sizeof(mse)); if ((word)my_first_nonempty < (word)global_first_nonempty) { my_first_nonempty = global_first_nonempty;