summaryrefslogtreecommitdiff
path: root/rts/RtsSymbols.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-06-30 15:06:25 -0400
committerBen Gamari <ben@smart-cactus.org>2022-07-15 18:16:28 -0400
commitd75c540d439510491b45f64c1113762dcb251ae1 (patch)
tree6fb957684ff84c94055ea246678679003aeec1a3 /rts/RtsSymbols.c
parent3d5f9ba19fea5455d778d2ee9c3fdcaad77d1db7 (diff)
downloadhaskell-wip/T21708.tar.gz
Make keepAlive# out-of-linewip/T21708
This is a naive approach to fixing the unsoundness noticed in #21708. Specifically, we remove the lowering of `keepAlive#` via CorePrep and instead turn it into an out-of-line primop. This is simple, inefficient (since the continuation must now be heap allocated), but good enough for 9.4.1. We will revisit this (particiularly via #16098) in a future release. Metric Increase: T4978 T7257 T9203
Diffstat (limited to 'rts/RtsSymbols.c')
-rw-r--r--rts/RtsSymbols.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c
index f695cbd041..9731f4febf 100644
--- a/rts/RtsSymbols.c
+++ b/rts/RtsSymbols.c
@@ -785,6 +785,7 @@ extern char **environ;
SymI_HasDataProto(stg_raiseUnderflowzh) \
SymI_HasDataProto(stg_raiseOverflowzh) \
SymI_HasDataProto(stg_raiseIOzh) \
+ SymI_HasDataProto(stg_keepAlivezh) \
SymI_HasDataProto(stg_paniczh) \
SymI_HasDataProto(stg_absentErrorzh) \
SymI_HasDataProto(stg_readTVarzh) \