* Richard Biener: >> I think H.J. needs this for a function that isn't even always_inline, >> just extern inline __attribute__ ((gnu_inline)). Is that aspect >> something that could be solved for GCC 11? > > But that should already work, no? Yes, it won't inline but also not > error. Unless glibc lacks the out-of-line definition, that is.
It does not work: extern double strtod (const char *, char **); extern __inline __attribute__ ((__gnu_inline__)) double atof (const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } fails with -mno-sse: t.c: In function ‘atof’: t.c:5:1: error: SSE register return with SSE disabled I don't think we need to support calling atof under these circumstances (in fact, this is impossible to support because there is no ABI we could use for the call). But we need to ignore the inline function definition, like we ignore function declarations. Otherwise we'll have to patch a lot of headers to support -mno-sse. Or has this already been fixed differently in GCC 11?