#5625: Code using seq has wrong strictness when unoptimised (too lazy)
---------------------------------+------------------------------------------
Reporter: michal.palka | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.3 | Keywords: seq strictness strict lazy
Testcase: | Blockedby:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: Incorrect result at runtime
---------------------------------+------------------------------------------
The code code should crash with Prelude.undefined. When compiled with `-O`
it behaves correctly, however with no optimisation (`-O0`) it prints `[0]`
instead. Reading the Core suggests that the expression gets translated
into `print (id [0])` when compiled with `-O0`. It was tested with GHC
7.3.20111022.
{{{
main = do
let a = \x -> seq undefined (+1)
print $ (a `seq` a [] `seq` id) [0]
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5625>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs