
#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 bgamari): So for what it's worth the segmentation faults alluded to in comment:6 are from testsuite tests using the GHC API. Namely the following tests fail if you make `cpe_ExprIsTrivial` use `litIsTrivial`, {{{ make test TEST="T12156 landmines parsed par01 T7478 T11430 T10313 comments parseTree annotations listcomps T12529 T8628 T6145 T8639_api T10508_api T1969 T5631 T3064 T5030 T12227" }}} I quickly looked at one particular example (`T8628`) and found shockingly few clues while running the program in `gdb`. Judging by the fact that the value of the `$rip` register points to unmapped memory I believe that the mutator is jumping to some random location in the program's image. The C stack offers essentially no hints. The Haskell stack, on the other hand, suggests that the crash was while evaluating within the lexer. Also, I have confirmed that allowing strings (but not integers) to be trivial in `cpe_ExprIsTrivial` is sufficient to prevent the crash. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11158#comment:26 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler