Skip to content

Undeclared variable in cmm reports as panic

In CMM code, if one makes an assignment to a variable that's not been declared, the compiler panics, in addition to reporting an almost sensible error message.

Here's code to make it happen:

testingbug
{
  var = 1;
}

And here's the output it causes:

ghc-6.9.20080305: panic! (the 'impossible' happened)
  (GHC version 6.9.20080305 for x86_64-unknown-linux):
	CmmParse: var not a register

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

I see two problems here:

  1. As the output notes, the compiler should not panic just because the user fed it noticeably bad code. It should just report the underlying message, with a line/column reference to the offending code.
  2. The error message should quote the variable name about which it's complaining. When I initially discovered this, the variable name in question was data, and that was rather confusing.
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
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information