[GHC] #10251: Bad rule generated in pathological cases
GHC
ghc-devs at haskell.org
Mon Apr 6 20:42:45 UTC 2015
#10251: Bad rule generated in pathological cases
-------------------------------------+-------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: None/Unknown | Unknown/Multiple
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
Old description:
> George reports: I am also seeing this on ghc 7.10.1, not sure if this is
> another instance of this bug (#9160):
> {{{
> cabal install bitmap
> [ 3 of 10] Compiling Data.Bitmap.IO ( Data/Bitmap/IO.hs,
> dist/build/Data/Bitmap/IO.o )
>
> Data/Bitmap/IO.hs:1248:1: Warning:
>
> SPECIALISE pragma for non-overloaded function ‘myPlusPtr’
>
> Data/Bitmap/IO.hs:1249:1: Warning:
>
> SPECIALISE pragma for non-overloaded function ‘myPlusPtr’
>
> ghc: panic! (the 'impossible' happened)
>
> (GHC version 7.10.1 for x86_64-apple-darwin):
>
> Template variable unbound in rewrite rule
>
> $fPixelComponentFloat3_X2Rc
> [$fPixelComponentFloat3_X2Rc]
> [$fPixelComponentFloat3_X2Rc]
> []
> []
> }}}
> But it's ''not'' #9160 at all. So I'm making a new ticket.
New description:
George reports: I am also seeing this on ghc 7.10.1, not sure if this is
another instance of this bug (#9160):
{{{
cabal install bitmap
[ 3 of 10] Compiling Data.Bitmap.IO ( Data/Bitmap/IO.hs,
dist/build/Data/Bitmap/IO.o )
Data/Bitmap/IO.hs:1248:1: Warning:
SPECIALISE pragma for non-overloaded function ‘myPlusPtr’
Data/Bitmap/IO.hs:1249:1: Warning:
SPECIALISE pragma for non-overloaded function ‘myPlusPtr’
ghc: panic! (the 'impossible' happened)
(GHC version 7.10.1 for x86_64-apple-darwin):
Template variable unbound in rewrite rule
$fPixelComponentFloat3_X2Rc
[$fPixelComponentFloat3_X2Rc]
[$fPixelComponentFloat3_X2Rc]
[]
[]
}}}
But it's ''not'' #9160 at all. So I'm making a new ticket.
--
Comment (by simonpj):
Slyfox says I've distilled it a bit to a selfcontained test:
{{{
-- sf 9160 # cat B.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -O2 #-}
module B (bug) where
data D = D
data E = E
class Storable a where
poke2 :: a -> E
instance Storable D where
poke2 = poke2 -- undefined
class Foo a where
instance Foo D where
class (Foo t, Storable t) => FooStorable t where
instance FooStorable D where
{-# SPECIALIZE instance FooStorable D #-}
{-# SPECIALIZE bug :: D -> E #-}
bug
:: FooStorable t
=> t
-> E
bug = poke2
{-
sf 9160 # ghc -c -fforce-recomp -Wall B.hs
B.hs:5:10: Warning: Defined but not used: data constructor ‘D’
B.hs:6:10: Warning: Defined but not used: data constructor ‘E’
ghc: panic! (the 'impossible' happened)
(GHC version 7.10.1 for x86_64-unknown-linux):
Template variable unbound in rewrite rule
$fFooStorableD_XU
[$fFooStorableD_XU]
[$fFooStorableD_XU]
[]
[]
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
-}
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10251#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list