[GHC] #13916: Optimizations create run time seg faults

GHC ghc-devs at haskell.org
Fri Jul 14 19:17:01 UTC 2017


#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):

 It turns out the simplified Core output for `s6tv` is even crazier,
 {{{#!hs
 let sat_s6tv [Occ=Once]
       :: GHC.Prim.State# GHC.Prim.RealWorld
          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
                Data.Either.Either env_a3xy () #)
     [LclId]
     sat_s6tv
       = \ (s1_s6tt [Occ=Once, OS=OneShot]
              :: GHC.Prim.State# GHC.Prim.RealWorld) ->
           src<Bracket.hs:99:40-68>
           src<Bracket.hs:92:34-39>
           src<Bracket.hs:62:47-52>
           case Bracket.$wtakeEnv
                  @ env_a3xy ww1_s6tk ww2_s6tl ww3_s6tm s1_s6tt
                                    of {} } in
 }}}

 It seems that somehow the strictness analyser has concluded that `takeEnv`
 diverges as its strictness signature is,
 {{{
 takeEnv_s5fz
   :: forall env.
      Vector (TMVar env)
      -> GHC.Prim.State# GHC.Prim.RealWorld
      -> (# GHC.Prim.State# GHC.Prim.RealWorld, env #)
 [LclId,
  Arity=2,
  Str=<B,1*U(U,U,U)><B,U>b,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [20 0] 126 0}]
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13916#comment:16>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list