GCC 3.2. VC++7 works as well.

The non-requirement for a return statement is part of the C++ standard -- if you don't return anything, the compiler is obliged to insert the equivalent to "return 0".