summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Klebinger <klebinger.andreas@gmx.at>2022-03-17 21:31:47 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-03-19 07:37:00 -0400
commitd1c03719277c2eda9ee9f4b45c62fa954b609b8e (patch)
tree1912b23a4888b641ec215d30643c5705ddd144a0
parent244da9ebc01b2a8c72f78e7be4411c32a4d0f524 (diff)
downloadhaskell-d1c03719277c2eda9ee9f4b45c62fa954b609b8e.tar.gz
Compact regions: Maintain tags properly
Fixes #21251
-rw-r--r--rts/Compact.cmm4
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/Compact.cmm b/rts/Compact.cmm
index 8a358e1da5..101c002834 100644
--- a/rts/Compact.cmm
+++ b/rts/Compact.cmm
@@ -224,7 +224,7 @@ eval:
CONSTR_1_1: {
(should) = ccall shouldCompact(compact "ptr", p "ptr");
- if (should == SHOULDCOMPACT_IN_CNF) { P_[pp] = p; return(); }
+ if (should == SHOULDCOMPACT_IN_CNF) { P_[pp] = tag | p; return(); }
constructor:
@@ -274,7 +274,7 @@ eval:
(should) = ccall shouldCompact(compact "ptr", p "ptr");
if (should == SHOULDCOMPACT_IN_CNF ||
- should == SHOULDCOMPACT_STATIC) { P_[pp] = p; return(); }
+ should == SHOULDCOMPACT_STATIC) { P_[pp] = tag | p; return(); }
goto constructor;
}}