https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90833
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- The bug you took the code from is a bug in the C front end. The C front end still accepts the code, and so does Clang's C compiler. If you're reporting a bug in the C++ compiler, it's a separate bug. G++ accepts this but gives a warning with -Wpedantic: 90833.c: In function ‘int main()’: 90833.c:3:26: warning: ‘inline’ specifier invalid for function ‘f’ declared out of global scope [-Wpedantic] extern inline void f(); ^ So this seems to be by design.