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?

Reply via email to