summaryrefslogtreecommitdiff
path: root/rts/Exception.cmm
diff options
context:
space:
mode:
authorAndreas Klebinger <klebinger.andreas@gmx.at>2021-02-21 16:04:20 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-02-26 16:27:26 -0500
commita9f23793126251844944e00bca8e84370c759aa7 (patch)
tree29122c4a7ce6aafcc41d3b070f70697289e2db97 /rts/Exception.cmm
parent24777bb334a49f6bd6c0df2d5ddb371f98436888 (diff)
downloadhaskell-a9f23793126251844944e00bca8e84370c759aa7.tar.gz
Move absentError into ghc-prim.
When using -fdicts-strict we generate references to absentError while compiling ghc-prim. However we always load ghc-prim before base so this caused linker errors. We simply solve this by moving absentError into ghc-prim. This does mean it's now a panic instead of an exception which can no longer be caught. But given that it should only be thrown if there is a compiler error that seems acceptable, and in fact we already do this for absentSumFieldError which has similar constraints.
Diffstat (limited to 'rts/Exception.cmm')
-rw-r--r--rts/Exception.cmm6
1 files changed, 6 insertions, 0 deletions
diff --git a/rts/Exception.cmm b/rts/Exception.cmm
index 3216edbcc4..edbd657251 100644
--- a/rts/Exception.cmm
+++ b/rts/Exception.cmm
@@ -660,3 +660,9 @@ stg_paniczh (W_ str)
{
ccall barf(str) never returns;
}
+
+// See Note [Compiler error functions] in GHC.Prim.Panic
+stg_absentErrorzh (W_ str)
+{
+ ccall barf("Oops! Entered absent arg %s", str) never returns;
+}