diff --git a/rts/include/rts/storage/Block.h b/rts/include/rts/storage/Block.h index a3b75cf7cd2fdda4e0467ee4d9b8d11790e256bf..2054ca0bc9a056be4a6cebfa4a6c28f16f0538e9 100644 --- a/rts/include/rts/storage/Block.h +++ b/rts/include/rts/storage/Block.h @@ -10,6 +10,10 @@ #include "ghcconfig.h" +#if !defined(CMINUSMINUS) +#include "rts/storage/HeapAlloc.h" +#endif + /* The actual block and megablock-size constants are defined in * rts/include/Constants.h, all constants here are derived from these. */ @@ -190,6 +194,7 @@ typedef struct bdescr_ { EXTERN_INLINE bdescr *Bdescr(StgPtr p); EXTERN_INLINE bdescr *Bdescr(StgPtr p) { + ASSERT(HEAP_ALLOCED_GC(p)); return (bdescr *) ((((W_)p & MBLOCK_MASK & ~BLOCK_MASK) >> (BLOCK_SHIFT-BDESCR_SHIFT)) | ((W_)p & ~MBLOCK_MASK)