[GHC] #7276: -fdefer-type-errors allows the types of quotations to be coerced, causing segmentation fault
GHC
cvs-ghc at haskell.org
Thu Oct 11 05:42:26 CEST 2012
#7276: -fdefer-type-errors allows the types of quotations to be coerced, causing
segmentation fault
---------------------------------+------------------------------------------
Reporter: parcs | Owner:
Type: bug | Status: merge
Priority: normal | Milestone:
Component: Compiler | Version: 7.6.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: Compile-time crash
Difficulty: Unknown | Testcase: th/T7276
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by parcs):
It looks like you can still trigger a segfault if you bind the quotation
to an identifier while coercing its type and then splicing the quotation,
e.g.
{{{
:set -fdefer-type-errors
:set -XTemplateHaskell
import Language.Haskell.TH
let x = [d|a = ()|] :: Q Exp
:t $x
}}}
The patch also makes GHC too aggressive than it should be with respect to
type errors within declaration quotations. For example the type error in
`$([d|a = () ()|])` could be deferred but after this patch it becomes an
eager type error. Likewise, you can no longer do e.g. `:t $([|() ()|])`
within GHCi to view the type of a malformed expression quotation.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7276#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list