https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80515
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- The implicit "return 0;" is only in C++ IIRC. I vaguely remember discussions advertising the use of noreturn on main to indicate that the compiler does not need to emit the cleanup/exit code for global variables, but I don't remember where that led.