#15517: -O0 and pattern synonyms triggers panic in trimJoinCont -------------------------------------+------------------------------------- Reporter: sjakobi | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Simon Peyton Jones <simonpj@…>): In [changeset:"ce6ce788251b6102f5c1b878ffec53ba7ad678b5/ghc" ce6ce78/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="ce6ce788251b6102f5c1b878ffec53ba7ad678b5" Set strictness correctly for JoinIds We were failing to keep correct strictness info when eta-expanding join points; Trac #15517. The situation was something like \q v eta -> let j x = error "blah -- STR Lx bottoming! in case y of A -> j x eta B -> blah C -> j x eta So we spot j as a join point and eta-expand it. But we must also adjust the stricness info, else it vlaimes to bottom after one arg is applied but now it has become two. I fixed this in two places: - In CoreOpt.joinPointBinding_maybe, adjust strictness info - In SimplUtils.tryEtaExpandRhs, return consistent values for arity and bottom-ness }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15517#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler