
#11158: Combine exprIsTrivial and cpe_ExprIsTrivial -------------------------------------+------------------------------------- Reporter: simonpj | Owner: Type: task | Status: infoneeded Priority: highest | Milestone: 8.2.1 Component: Compiler | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1656 Wiki Page: | -------------------------------------+------------------------------------- Comment (by nomeata): ARG! Where is my comment to Simon’s comment:22 gone? I replied to that! (Maybe got bitten by #11718 again.) So here is a second try: Re SPJ’s point 3: As I wrote in comment:14, the above happens when I change `cpe_ExprIsLiteral` to ''not'' consider data constructors as trivial: {{{ cpe_ExprIsTrivial (Var v) | isDataConWorkId v = False }}} Obviously this is not what we want, but it is the easiest way to trigger the mysterious crashes and understand more about the pipeline, in particular why is it not safe to have `MayHaveCafRefs` on such pointless bindings. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11158#comment:24 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler