https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70958
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |msebor at gcc dot gnu.org Resolution|--- |INVALID --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- The reason GCC 4.8 issues the warning is because it targets C89 by default, and C89 doesn't say that falling off the end of main is allowed. The reason why GCC 5.3 doesn't issue the same warning is because it targets C11 by default, and C11 says that main that ends without explicitly returning a value as good as one that did. You can revert to the prior behavior with 5.3 by using the -std=c89 option. While I believe GCC behaves correctly, I think the manual could stand to be clarified to explain this subtle nuance (similarly to how it explains it for C++).