#5658: Strict bindings are wrongly floated out of case alternatives.
---------------------------------+------------------------------------------
Reporter: benl | Owner: benl
Type: bug | Status: new
Priority: normal | Milestone: 7.4.1
Component: Compiler | Version: 7.2.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Runtime crash
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by rl):
Actually, the good code looked like this (sorry, got my loops mixed up):
{{{
$weq_loop0_s22g =
\ (ww_s21d :: Int#) (ww1_s21h :: Int#) ->
case >=# ww_s21d ipv1_s1QZ of _ {
False ->
case >=# ww1_s21h sc1_s24C of _ {
False ->
case ==#
(indexIntArray# ipv2_s1R0 (+# ipv_s1QY ww_s21d))
(indexIntArray# sc2_s24D (+# sc_s24B ww1_s21h))
of _ {
False -> False;
True -> $weq_loop0_s22g (+# ww_s21d 1) (+# ww1_s21h 1)
};
True -> False
};
True -> >=# ww1_s21h sc1_s24C
};
}}}
Not that it matters.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5658#comment:11>
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