https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86599
--- Comment #15 from dave.anglin at bell dot net --- On 2018-08-11 5:51 PM, bugzilla-gcc at thewrittenword dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86599 > > --- Comment #13 from The Written Word <bugzilla-gcc at thewrittenword dot > com> --- > (In reply to The Written Word from comment #10) >> (In reply to John David Anglin from comment #9) >>> It would help to see the uses of long_double in stdlib.h. >> /usr/include/stdlib.h has: >> >> # ifndef _LONG_DOUBLE >> # define _LONG_DOUBLE >> # if !defined(__ia64) || !defined(_PROTOTYPES) || >> defined(_LONG_DOUBLE_STRUCT) >> typedef struct { >> uint32_t word1, word2, word3, word4; >> } long_double; >> extern long_double strtold __((const char * __restrict, char ** __restrict)); >> # else /* !__ia64 || !_PROTOTYPES || _LONG_DOUBLE_STRUCT */ >> # ifdef _INCLUDE_HPUX_SOURCE >> typedef long double long_double; >> # endif /* _INCLUDE_HPUX_SOURCE */ >> extern long double strtold __((const char * __restrict, char ** __restrict)); >> # endif /* !__ia64 ||!_PROTOTYPES ||_LONG_DOUBLE_STRUCT */ >> #endif /* _LONG_DOUBLE */ > I think the problem on 11.31 is that the strtold() definition is in the above. > We can't simply remove it all and change long_double->long double in the > remainder of the file to get the function definition changed. You could replace the above with prototype for strtold().