X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FSanity.c;h=9c0ed2bb8487ab81920e6f4987ecaf5a1b5da362;hb=edf6bdfb5dee21f9bc5077083e5350ee64efffbc;hp=ae40bbea60676c50d5757bebbb58892de4cf7422;hpb=7177663c27f00f7bbeb222f2c92c43d9da0ec308;p=ghc-hetmet.git diff --git a/ghc/rts/Sanity.c b/ghc/rts/Sanity.c index ae40bbe..9c0ed2b 100644 --- a/ghc/rts/Sanity.c +++ b/ghc/rts/Sanity.c @@ -305,7 +305,8 @@ checkClosure( StgClosure* p ) case BLACKHOLE: case CAF_BLACKHOLE: case STABLE_NAME: - case MUT_VAR: + case MUT_VAR_CLEAN: + case MUT_VAR_DIRTY: case CONSTR_INTLIKE: case CONSTR_CHARLIKE: case CONSTR_STATIC: @@ -400,7 +401,8 @@ checkClosure( StgClosure* p ) case ARR_WORDS: return arr_words_sizeW((StgArrWords *)p); - case MUT_ARR_PTRS: + case MUT_ARR_PTRS_CLEAN: + case MUT_ARR_PTRS_DIRTY: case MUT_ARR_PTRS_FROZEN: case MUT_ARR_PTRS_FROZEN0: { @@ -547,6 +549,12 @@ checkHeap(bdescr *bd) { StgPtr p; +#if defined(SMP) + // heap sanity checking doesn't work with SMP, because we can't + // zero the slop (see Updates.h). + return; +#endif + for (; bd != NULL; bd = bd->link) { p = bd->start; while (p < bd->free) {