summaryrefslogtreecommitdiff
path: root/rts/Compact.cmm
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Compact.cmm')
-rw-r--r--rts/Compact.cmm5
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) {