
#13916: Optimizations create run time seg faults
-------------------------------------+-------------------------------------
Reporter: newthin | Owner: (none)
Type: bug | Status: new
Priority: highest | Milestone: 8.2.2
Component: Compiler | Version: 8.0.2
(CodeGen) |
Resolution: | Keywords: optimization
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: Runtime crash | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by bgamari):
Here is a sketch of the structure of `takeEnv` along with strictness
signatures,
{{{
takeEnv =
\ (@ env_a3hT)
(x_X3Lx [Dmd=] :: Vector (TMVar env_a3hT))
(eta_B1 [Dmd=] :: GHC.Prim.State# GHC.Prim.RealWorld) ->
case x_X3Lx of
{ Data.Vector.Vector ipv_s4Q7 [Dmd=] ipv_s4Q8 [Dmd=]
ipv_s4Q9 [Dmd=] ->
joinrec {
foldlM_loop_a45q [Occ=LoopBreaker]
:: GHC.Types.SPEC
-> STM env_a3hT
-> Int
-> (# GHC.Prim.State# GHC.Prim.RealWorld, env_a3hT #)
foldlM_loop_a45q (ds4_a45s [Dmd=] :: GHC.Types.SPEC)
(z1_a45t [Dmd=] :: Int) = ...
}
in jump foldlM_loop_a45q
GHC.Types.SPEC
(((srcBracket.hs:119:32-36 GHC.Prim.retry#) @ env_a3hT)
`cast` (Sym (GHC.Conc.Sync.N:STM[0]