Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC Commits: 42918646 by Duncan Coutts at 2026-07-19T07:50:36-04:00 Fix failing test GcStaticPointers for non-moving GC Minor mistake in asserting something before checking for that same thing. Specifically, Bdescr asserts HEAP_ALLOCED_GC, but Bdescr was being used prior to a guard that checks HEAP_ALLOCED_GC. The solution is just to move the use of Bdescr after the guard. Thanks to Simon Jakobi for identifying the problem. - - - - - 1 changed file: - rts/sm/NonMovingMark.c Changes: ===================================== rts/sm/NonMovingMark.c ===================================== @@ -2018,8 +2018,10 @@ bool nonmovingTidyWeaks (struct MarkQueue_ *queue) // See Note [Weak pointer processing and the non-moving GC] in // MarkWeak.c - bdescr *key_bd = Bdescr((StgPtr) w->key); - bool key_in_nonmoving = HEAP_ALLOCED_GC(w->key) && block_get_flags(key_bd) & BF_NONMOVING; + bool key_in_nonmoving = + HEAP_ALLOCED_GC(w->key) && + block_get_flags(Bdescr((StgPtr) w->key)) & BF_NONMOVING; + if (!key_in_nonmoving || nonmovingIsNowAlive(w->key)) { nonmovingMarkLiveWeak(queue, w); did_work = true; View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/42918646169c7c5ba61912b39b5f5147... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/42918646169c7c5ba61912b39b5f5147... You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help