Error: symbol `ghczmprim_GHCziUnit_Z0T_closure' is already defined
This module:
module Foo where
f :: Int -> Int
f _ | () `seq` False = undefined
| otherwise = error "XXX"
g :: Int -> Int
g _ | () `seq` False = undefined
| otherwise = error "XXX"
doesn't compile with 6.8.3 or the HEAD; here's what happens with the HEAD (compiled with -DDEBUG, but I'm pretty sure it wouldn't work anyway):
$ ghc -fforce-recomp -c Foo.hs
ghc-6.9.20080701: panic! (the 'impossible' happened)
(GHC version 6.9.20080701 for x86_64-unknown-linux):
ASSERT failed! file stgSyn/CoreToStg.lhs line 922 (){v 71} [lid]
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
$ ghc -fforce-recomp -c Foo.hs -O
/tmp/ghc4665_0/ghc4665_0.s: Assembler messages:
/tmp/ghc4665_0/ghc4665_0.s:95:0:
Error: symbol `ghczmprim_GHCziUnit_Z0T_closure' is already defined
The original problem report, using Takusen, is here: http://www.haskell.org/pipermail/glasgow-haskell-users/2008-June/015037.html
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.9 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |