From: The Amorphous Mass <robinson@blue.weeg.uiowa.edu>
To: scs@eskimo.com
Date: Mon, 18 Dec 1995 16:40:20 -0600 (CST)
Subject: void main(void) crashes PC
Message-ID: <Pine.A32.3.91.951218160207.26209A-100000@black.weeg.uiowa.edu>

Hi Steve,

Sorry this took so long; it's been really crazy around here. The machine that crashed is a Toshiba Satellite T2400CT with a 486/66 running Windows 3.1.1. The compiler is Borland C++ 4.0, installed to run strict ANSI C. The symptom is simple: you compile the program, and run it, and you get a syntax error -- from the linker! Changing void to int dispels the problem immediately. Of course, since apparently Borland defaults to strict ANSI compliance (my coworker did not specify strict ANSI mode) there is no way to run most of Borland's own example code without reinstalling the compiler...

This isn't quite as exciting as I originally thought it was, but it's a beautiful example of undefined behavior on the platform where void main() is "supposed" to be "good style," using one of the compilers that advocates that style.

Hope this is worth something. I was kind of hoping that it actually hung the machine like my colleague let on, but a linker syntax error is a pretty satisfying crash. :)

___________
Bushido, n.: the ancient art of keeping your  | James Robinson
cool when a US President ralphs in your lap.  | james-f-robinson@uiowa.edu