ghc 8.4.1 and trac 13930
Evan Laforge
qdunkan at gmail.com
Wed May 2 18:39:03 UTC 2018
Ok, here's a short module:
import qualified Control.Exception as Exception
main :: IO ()
main = do
unserialize
putStrLn "all is well"
unserialize :: IO Char
unserialize =
if definitelyTrue
then do
return 'a'
else do
Exception.evaluate (error "wrong place")
{-# NOINLINE definitelyTrue #-}
definitelyTrue :: Bool
definitelyTrue = True
When compiled with -O on 8.4.1, this should print "wrong place".
Without -O, or with 8.4.2, or if True can be inlined, or without
evaluate, all is well.
More information about the ghc-devs
mailing list