summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@well-typed.com>2021-01-03 17:50:43 -0500
committerBen Gamari <ben@well-typed.com>2021-01-03 17:50:43 -0500
commit87d849334ebbd331392dddb1c91b0f72e1e4ef7d (patch)
treef695fc516bed2bee98f081b67db2cff7c3b4b0c7
parent26a928b8fdb1b4ccb75e8edb620b8cf12cb38621 (diff)
downloadhaskell-wip/T19162.tar.gz
rts/Sanity: Allow DEAD_WEAKs in weak pointer listwip/T19162
The weak pointer check in `checkGenWeakPtrList` previously failed to account for dead weak pointers. This caused `fptr01` to fail in the `sanity` way. Fixes #19162.
-rw-r--r--rts/sm/Sanity.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/Sanity.c b/rts/sm/Sanity.c
index d3c18adbd5..193a1a884c 100644
--- a/rts/sm/Sanity.c
+++ b/rts/sm/Sanity.c
@@ -330,7 +330,7 @@ checkGenWeakPtrList( uint32_t g )
{
for (StgWeak *w = generations[g].weak_ptr_list; w != NULL; w = w->link) {
ASSERT(LOOKS_LIKE_CLOSURE_PTR(w));
- ASSERT(w->header.info == &stg_WEAK_info);
+ ASSERT(w->header.info == &stg_WEAK_info || w->header.info == &stg_DEAD_WEAK_info);
ASSERT(LOOKS_LIKE_CLOSURE_PTR(w->key));
ASSERT(LOOKS_LIKE_CLOSURE_PTR(w->value));
ASSERT(LOOKS_LIKE_CLOSURE_PTR(w->finalizer));