http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59626
Aldy Hernandez <aldyh at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |WAITING CC| |aldyh at gcc dot gnu.org --- Comment #2 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- I don't get it. Do you think the error is incorrect? A simplified testcase yields this: reynosa:/dev/shm/trunk/gcc$ cat a.c int __readlinkat_alias(void) __asm__("readlinkat"); inline __attribute__((__always_inline__)) int readlinkat() { return __readlinkat_alias(); } int main() { return readlinkat(); } reynosa:/dev/shm/trunk/gcc$ ./xgcc -B./ a.c -flto -O -Wall a.c: In function 'readlinkat': a.c:4:5: error: inlining failed in call to always_inline 'readlinkat': recursive inlining int readlinkat() { ^ a.c:5:3: error: called from here return __readlinkat_alias(); ^ But this seems correct to me. The call to readlinkat() in main is inlined as a call to __readlinkat_alias() [which is an alias to readlinkat()]. So yeah, it will be recursive inlining. Do you think the error is incorrect, or do you think the same error should appear for -std=gnu99?