https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678
--- Comment #10 from David Binderman <dcb314 at hotmail dot com> --- (In reply to Jonathan Wakely from comment #9) > C89 6.7p4 looks equivalent to C99 6.9p5, so I don't see why -std=c89 should > imply -fcommon. To reduce costs in upgrading to post-revision 278509 compilers. -std=c89 implies old code. Old code relies on old behaviour. Providing old behaviour by default means that compiler users don't have to suddenly put "-fcommon" in all their old code Makefiles to get compilation. I am not sure about intermediate cases like c99, but certainly newer language standards (c11, ...) can adopt the new behaviour.