diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-05-06 15:47:31 +0100 |
---|---|---|
committer | GHC GitLab CI <ghc-ci@gitlab-haskell.org> | 2022-05-06 15:50:06 +0100 |
commit | 1cd95edc6a064e7c607290ecd145869e034729f1 (patch) | |
tree | 140e2db1461fe5348384955e5847a4296db73b0c | |
parent | 73b22ff196160036ac10b762bf3a363fa8a451ad (diff) | |
download | haskell-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.hs | 4 |
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, |