Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#8062 closed bug (fixed)

Panic "Lookup local fingerprint main:Main.main{v r6xE}"

Reported by: tommd Owned by:
Priority: normal Milestone:
Component: Compiler Version: 7.6.3
Keywords: Cc:
Operating System: Linux Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


When compiling some quickcheck tests for a larger internal project I receive the following error on my x86-64 Linux 3.10 system:

ghc: panic! (the 'impossible' happened)
  (GHC version 7.6.3 for x86_64-unknown-linux):
	urk! lookup local fingerprint main:Main.main{v r6xE}

Please report this as a GHC bug:

System info:

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
$ uname -a
Linux Vodka 3.9.6-200.fc18.x86_64 #1 SMP Thu Jun 13 18:56:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ gcc --version
gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO

$ ld --version
GNU ld version 20120806
Copyright 2012 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

Change History (4)

comment:1 Changed 4 years ago by tommd

A slight modification of the code yields:

ghc: panic! (the 'impossible' happened)
  (GHC version 7.6.3 for x86_64-unknown-linux):
	cgLookupPanic (probably invalid Core; try -dcore-lint)
    $dOneOfMyClasses{v a3yU} [lid]
    static binds for:
    local binds for:

comment:2 Changed 4 years ago by simonpj

That is a bug, but we can't fix it without a way to reproduce it, sadly.

-dcore-lint will probably give a more informative error than the cgLookupPanic but I doubt it'll be enough to nail it.


comment:3 Changed 4 years ago by tommd

Resolution: fixed
Status: newclosed

This is fixed in head, though the error message is a bit odd. For the curious, a working example is:

{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, TypeFamilies #-}

main = do
    bench bar :: IO Int
    return ()

-- Run the monad, applying the value
bench :: Pr c -> IO c
bench = undefined

-- Protocol monad
newtype Pr a = Pr a

-- Shared
newtype Cont a = Cont a 

type family S (m :: * -> *) :: * -> * 
type instance S Pr = Cont

bar :: Pr (S Pr a)
bar = undefined

I'll close the ticket now. Thanks to emertens for working to build the example and test HEAD.

Version 0, edited 4 years ago by tommd (next)

comment:4 Changed 4 years ago by simonpj

Interesting. What's the sequence that produces the odd message, and in what way is it odd?


Note: See TracTickets for help on using tickets.