summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Utils/Monad.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Tc/Utils/Monad.hs')
-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,