If I compile this test case with -std=c99 and no optimization, I get an undefined external. It seems to happen on all platforms including x86 Linux. Removing the -std=c99 or using optimization will make the error go away.
$ cat f.c inline int foo() { return 123; } inline int goo() { return foo(); } int main() { return goo(); } $ gcc -O0 -std=c99 f.c -o x /tmp/cc4dBeMk.o: In function `main': f.c:(.text+0xa): undefined reference to `goo' collect2: ld returned 1 exit status -- Summary: inline function calling inline function causes undef with -std=c99 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sje at cup dot hp dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41471