[Bug lto/59626] [4.9 lto] /usr/include/bits/unistd.h:173:1: error: inlining failed in call to always_inline 'readlinkat': recursive inlining
aldyh at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jan 10 19:43:00 GMT 2014
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?
More information about the Gcc-bugs
mailing list