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 ignored.'

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 program"

"'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 message"

"Call me paranoid but finding `/*' inside this comment makes me suspicious"

"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.

To the techie humour page
To the Mipmip home page
Feel free to leave a comment!
Mike Arnautov (23 December 2016)