diff options
Diffstat (limited to 'rts/Compact.cmm')
-rw-r--r-- | rts/Compact.cmm | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/rts/Compact.cmm b/rts/Compact.cmm index ecb694cf5c..664a91a655 100644 --- a/rts/Compact.cmm +++ b/rts/Compact.cmm @@ -143,7 +143,10 @@ eval: } case ARR_WORDS: { - + // Lives in large object block/compact region but explicitly marked pinned. + if(info == stg_ARR_WORDS_PINNED_info) { + jump stg_raisezh(base_GHCziIOziException_cannotCompactPinned_closure); + } (should) = ccall shouldCompact(compact "ptr", p "ptr"); if (should == SHOULDCOMPACT_IN_CNF) { P_[pp] = p; return(); } if (should == SHOULDCOMPACT_PINNED) { |