https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86599

--- Comment #14 from The Written Word <bugzilla-gcc at thewrittenword dot com> 
---
(In reply to The Written Word from comment #13)
> (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.

Hmm, maybe two new rules, the first to remove everything before "extern long
double strtold" and change long_double->long double and the second to remove
the two lines after "extern long double strtold". Let me try to come up with
something.

Reply via email to