http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55185
Bug #: 55185 Summary: Error generated on extern inline function which isn't called Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com On x86-64: [hjl@gnu-tools-1 tmp]$ cat y.i extern double strtod (const char *__restrict __nptr, char **__restrict __endptr); extern __inline double atof (const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } [hjl@gnu-tools-1 tmp]$ gcc -S -O y.i [hjl@gnu-tools-1 tmp]$ cat y.s .file "y.i" .ident "GCC: (GNU) 4.7.2 20120921 (Red Hat 4.7.2-2)" .section .note.GNU-stack,"",@progbits [hjl@gnu-tools-1 tmp]$ gcc -S -O y.i -mno-sse y.i: In function ‘atof’: y.i:6:1: error: SSE register return with SSE disabled [hjl@gnu-tools-1 tmp]$