summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-10-22 21:07:34 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-03-08 15:02:30 -0500
commitba7e7972ae14848a9ac41d5c6200d0aa5727ed72 (patch)
tree019f0cc484217f24c38abc38cdce5764ec2ecdd9
parent92227b6022b35d87f6366c75e09ed495b7c3603e (diff)
downloadhaskell-ba7e7972ae14848a9ac41d5c6200d0aa5727ed72.tar.gz
nonmoving: Sanity check nonmoving large objects and compacts
-rw-r--r--rts/sm/Sanity.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/rts/sm/Sanity.c b/rts/sm/Sanity.c
index a8a7a3d9c6..d0a6403555 100644
--- a/rts/sm/Sanity.c
+++ b/rts/sm/Sanity.c
@@ -44,6 +44,8 @@ static void checkLargeBitmap ( StgPtr payload, StgLargeBitmap*, uint32_t );
static void checkClosureShallow ( const StgClosure * );
static void checkSTACK (StgStack *stack);
+static void checkCompactObjects (bdescr *bd);
+
static W_ countNonMovingSegments ( struct NonmovingSegment *segs );
static W_ countNonMovingHeap ( struct NonmovingHeap *heap );
@@ -631,6 +633,9 @@ static void checkNonmovingSegments (struct NonmovingSegment *seg)
void checkNonmovingHeap (const struct NonmovingHeap *heap)
{
+ checkLargeObjects(nonmoving_large_objects);
+ checkLargeObjects(nonmoving_marked_large_objects);
+ checkCompactObjects(nonmoving_compact_objects);
for (unsigned int i=0; i < NONMOVING_ALLOCA_CNT; i++) {
const struct NonmovingAllocator *alloc = heap->allocators[i];
checkNonmovingSegments(alloc->filled);