[GHC] #11158: Combine exprIsTrivial and cpe_ExprIsTrivial
GHC
ghc-devs at haskell.org
Wed Oct 26 17:39:02 UTC 2016
#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
More information about the ghc-tickets
mailing list