
#15155: How untagged pointers sneak into banged fields -------------------------------------+------------------------------------- Reporter: heisenbug | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.4.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: 14677 Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonmar): I didn't really follow the description here. Naively I'd expect `c` to compile into a CAF, like `c = case b of b' -> C b'` and then we'd be fine. If the compiler is assuming that `b` is already a value and thus avoiding evaluating it, that would be a false assumption. Where is the false assumption being made? I think the `IND_STATIC` stuff is a red herring. There's a top-level binding `b = a` which is compiled into an `IND_STATIC` as an optimisation, but it could also be compiled into a CAF, this is just a back-end code- generation choice. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15155#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler