diff --git a/rts/sm/NonMovingMark.c b/rts/sm/NonMovingMark.c index 8f3097ac07ebe4c636de6feef8ea9f3ad49acc1f..cddacb782dc137297902ca641e177473e80e3775 100644 --- a/rts/sm/NonMovingMark.c +++ b/rts/sm/NonMovingMark.c @@ -918,7 +918,7 @@ static MarkQueueEnt markQueuePop (MarkQueue *q) // The entry may not be a MARK_CLOSURE but it doesn't matter, our // MarkQueueEnt encoding always places the pointer to the object to be // marked first. - prefetchForRead(&new.mark_closure.p->header.info); + prefetchForRead(&(UNTAG_CLOSURE(new.mark_closure.p)->header.info)); #if !defined(ASSERTS_ENABLED) prefetchForRead(Bdescr((StgPtr) new.mark_closure.p)); #endif