From a563b883dd221bf51d0df4b65c95833d33960b3d Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Thu, 17 Nov 2016 10:23:53 +0300 Subject: [PATCH] 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. --- mark.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mark.c b/mark.c index f8928b3..b83ad91 100644 --- a/mark.c +++ b/mark.c @@ -1075,7 +1075,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; -- 2.7.4