summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-05-06 15:47:31 +0100
committerGHC GitLab CI <ghc-ci@gitlab-haskell.org>2022-05-06 15:50:06 +0100
commit1cd95edc6a064e7c607290ecd145869e034729f1 (patch)
tree140e2db1461fe5348384955e5847a4296db73b0c
parent73b22ff196160036ac10b762bf3a363fa8a451ad (diff)
downloadhaskell-1cd95edc6a064e7c607290ecd145869e034729f1.tar.gz
Experiment adding use after free panic to constraint and warning variableswip/use_after_free
-rw-r--r--compiler/GHC/Tc/Utils/Monad.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/GHC/Tc/Utils/Monad.hs b/compiler/GHC/Tc/Utils/Monad.hs
index 571e02c7cf..5741e21ca5 100644
--- a/compiler/GHC/Tc/Utils/Monad.hs
+++ b/compiler/GHC/Tc/Utils/Monad.hs
@@ -1306,6 +1306,7 @@ capture_constraints thing_inside
; res <- updLclEnv (\ env -> env { tcl_lie = lie_var }) $
thing_inside
; lie <- readTcRef lie_var
+ ; when debugIsOn (writeTcRef lie_var (error "capture_constraints: use after free"))
; return (res, lie) }
capture_messages :: TcM r -> TcM (r, Messages TcRnMessage)
@@ -1318,8 +1319,11 @@ capture_messages thing_inside
= do { msg_var <- newTcRef emptyMessages
; res <- setErrsVar msg_var thing_inside
; msgs <- readTcRef msg_var
+ ; when debugIsOn (writeTcRef msg_var (error "capture_messages: use after free"))
; return (res, msgs) }
+
+
-----------------------
-- (askNoErrs m) runs m
-- If m fails,