Some memorable messages embedded in compilers
The all-time favorite error message was from IBM Fortran (it is
unclear whether it was the G or the H compiler), circa 1970:
`Too many comment lines (max=19). Excess comments have been
These are some of the error messages produced by Apple's MPW C
compiler. These are all real.
"String literal too long (I let you have 512 characters, that's 3
more than ANSI said I should)"
"...And the lord said, 'lo, there shall only be case or default
labels inside a switch statement'"
"a typedef name was a complete surprise to me at this point in your
"'Volatile' and 'Register' are not miscible"
"You can't modify a constant, float upstream, win an arguement with
the IRS, or satisfy this compiler"
"This struct already has a perfectly good definition"
"Type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11 (I
know you don't care, I'm just trying to annoy you)"
"Can't cast a void type to type void (because the ANSI spec. says
so, that's why)"
"Can't go mucking with a 'void*'"
"We already did this function"
"This label is the target of a goto from outside of the block
containing this label AND this block has an automatic variable with an
initializer AND your window wasn't wide enough to read the whole error
"Call me paranoid but finding `/*' inside this comment makes me
"Too many errors on one line (make fewer)"
"Symbol table full - fatal heap error; please go buy a RAM upgrade
from your local Apple dealer"
Some error messages from the Prime's CI compiler:
- A random error was found. Please change the date and re-compile.
- Too much static was encountered while attempting to listen to the
BBC shortwave broadcast.
- A slimy little thing crawled out of the CPU and ate your program.
Please re-create it and re-compile.
- Whom I'd rather be chasing than writing error messages!
- This expression attempted to pass an actual argument to a function with a
"void" argument list. That is veddy naughty.
- An argument to this function call had a type incompatible with the
corresponding declaration of the formal parameter to the function.
This incompatibility forces me to banish your program to Waco, TX.
- A conversion specified by the declaration of a formal parameter to
this function would have required my converting something from a
type other than "pointer to function" or "function", to a
"pointer to function". Gentlemen don't do that.
- Too few arguments were supplied to the function called in this
expression. This will undoubtedly lead to an early demise of the
subject program, once converted into object text. This early
demise may supply much-needed business to your friendly local
funeral parlor, but will otherwise cause much grief and sadness.
To say nothing of howls of anguish.
- Too many arguments were supplied to a function not allowing a
variable number of arguments. The superfluous arguments have been
donated to the homeless for their consumption.
- This is the Bill Carpenter memorial error message...
this expression used a non-integral constant expression, a
non-portable feature. I've converted it to a nice integral constant.
- This expression referenced an undeclared identifier, but
performed no operation on it; this is highly unusual.