SPECIALIZE causes panic
the following code snippet makes GHC (6.6) panic:
delta' :: Eq a => a -> a -> b -> b -> b
delta' x y e f = if (x==y) then f else e
{-# SPECIALIZE delta' :: Num b => Int -> Int -> b -> b -> b #-}
delta :: (Eq a, Num b) => a -> a -> b
delta x y = delta' x y 0 1
{-# SPECIALIZE delta :: Num b => Int -> Int -> b #-}
the reply from GHC:
ghc-6.6: panic! (the 'impossible' happened)
(GHC version 6.6 for i386-apple-darwin):
Template variable unbound in rewrite rule $dNum{v a1bL} [lid]
it does not panic without the SPECIALIZE pragmas.
the version used is GHC 6.6, i386-apple-darwin.
Trac metadata
Trac field | Value |
---|---|
Version | 6.6 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |