https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126702
--- Comment #4 from Drea Pinski <pinskia at gcc dot gnu.org> --- >Similarly, in the code above, only one definition of f is provided. Therefore >there is no choice; the compiler must use the only definition provided. The compiler has no knowledge of only one definition provided since the other definition could be in another TU. > previous versions of gcc compiled it as expected Which didn't default to gnu99+ but rather gnu90. GCC 4.9.x and before defaulted to gnu90 as the language standard while GCC 5.x and above default to gnu11 (or above). C90 didn't have the inline keyword but gnu90 did and inline there has different semantics than C99.
