
#14127: -fignore-interface-pragmas and -fspecialise do not go well together -------------------------------------+------------------------------------- Reporter: lspitzner | Owner: (none) Type: bug | Status: infoneeded Priority: normal | Milestone: Component: Compiler | Version: 8.0.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by lspitzner): Sorry, I wrongly assumed this was much easier to reproduce. Now that I try, it appears to be pretty specific, in fact I can't even simplify properly. This still needs a dependency on aeson-1.2.1.0: - A.hs {{{#!hs {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveDataTypeable #-} module A where import GHC.Generics data Foo = AltChooserSimpleQuick deriving (Generic) }}} - B.hs {{{#!hs {-# OPTIONS_GHC -fno-pre-inlining #-} {-# OPTIONS_GHC -fspecialise #-} {-# OPTIONS_GHC -fignore-interface-pragmas #-} module B where import A import qualified Data.Aeson.Types as Aeson instance Aeson.FromJSON Foo where parseJSON = Aeson.genericParseJSON Aeson.defaultOptions {-# NOINLINE parseJSON #-} }}} I have made several attempts to reproduce this with a standalone class instead of the one from aeson, but failed to do so. It also appears that the panic disappears when there is no orphan instance in play (i.e. if you merge modules A/B). Also note that simply replacing `data Foo = AltChooseSimpleQuick` with `data Foo = AltChoose` the panic disappears. Further testing suggests that it requires any constructor identifier with at least 21 characters to trigger the panic. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14127#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler