http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59626

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-12-30
                 CC|                            |trippels at gcc dot gnu.org
      Known to work|                            |4.7.3
     Ever confirmed|0                           |1
      Known to fail|                            |4.8.3, 4.9.0

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
markus@x4 % cat test.i
long __readlinkat_alias() __asm__("readlinkat");
__inline __attribute__((__always_inline__)) 
long readlinkat(int p1, const char *p2, char *p3, unsigned long p4) {
  __readlinkat_alias();
}

int main() {
  long (*b)(int, const char *, char *, unsigned long) = readlinkat;
  return b(0, 0, 0, 0);
}

(4.7.3 is fine with -std=gnu99)
markus@x4 % /usr/x86_64-pc-linux-gnu/gcc-bin/4.7.3/gcc -std=gnu99 -flto -r
-nostdlib test.i -O2 -o /dev/null

(4.9.0 fails)
markus@x4 % gcc -std=gnu99 -flto -r -nostdlib test.i -O2 -o /dev/null
test.i: In function ‘main’:
test.i:3:6: error: inlining failed in call to always_inline ‘readlinkat’:
recursive inlining
 long readlinkat(int p1, const char *p2, char *p3, unsigned long p4) {
      ^
test.i:4:21: error: called from here
   __readlinkat_alias();
                     ^
lto-wrapper: /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.0/gcc returned 1 exit status
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../x86_64-pc-linux-gnu/bin/ld:
fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status
markus@x4 % gcc -std=gnu99  -r -nostdlib test.i -O2 -o /dev/null
markus@x4 %

Reply via email to