In C99 this extern inline int f(int n) { return n + 1; } does not meet the criteria in 6.7.4#6 for 'inline definition' and is therefore an external definition. gcc -std=c99 fails to emit an external definition, though it does for the separate definition/declaration case in the 6.7.4#7 example.
-- Summary: extern inline fails to create external definition in C99 mode Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: algrant at acm dot org GCC build triplet: -std=c99 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26841