
#11172: Turning on optimisations produces SEGFAULT or Impossible case alternative
-------------------------------------+-------------------------------------
Reporter: nh2 | Owner: bgamari
Type: bug | Status: new
Priority: highest | Milestone: 8.0.1
Component: Compiler | Version: 7.10.2
Resolution: | Keywords:
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 appears that this,
{{{#!hs
(\ (a48_aeBK :: (Either () Int, Module.JSONState Double)) ->
case a48_aeBK of _ [Occ=Dead] { (a1_aeN0, s'_aeN1) ->
case a1_aeN0 of _ [Occ=Dead] {
Left l_aeDR ->
ks_XeD2 (Data.Either.Left @ () @ Int l_aeDR,
s'_aeN1);
Right r_aeDU ->
ks_XeD2 (Data.Either.Right @ () @ Int r_aeDU,
s'_aeN1)
}
})
}}}
is getting simplified to,
{{{#!hs
(\ (a48_aeBK :: (Either () Int, Module.JSONState Double)) ->
case a48_aeBK
of _ [Occ=Dead, Dmd=], s'_aeN1 [Dmd=])
->
case a1_aeN0 of _ [Occ=Dead, Dmd=