diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-03-07 20:06:54 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-03-07 20:06:54 +0000 |
commit | 0b3ad39364f952e2cdc2fe31408bff678ab39363 (patch) | |
tree | d22c80051d01f847af805573de433370e7e049e1 | |
parent | 29adfd78bd5870268f0b930f25374f7299dd7e8d (diff) | |
download | cygnal-0b3ad39364f952e2cdc2fe31408bff678ab39363.tar.gz cygnal-0b3ad39364f952e2cdc2fe31408bff678ab39363.tar.bz2 cygnal-0b3ad39364f952e2cdc2fe31408bff678ab39363.zip |
* libc/include/stdlib.h (strtold): Define if _HAVE_LONG_DOUBLE is
defined.
* libc/stdlib/strtold.c (strtold): Ditto. Call strtod on systems
with long double == double, _strtold otherwise.
-rw-r--r-- | newlib/ChangeLog | 8 | ||||
-rw-r--r-- | newlib/libc/include/stdlib.h | 4 | ||||
-rw-r--r-- | newlib/libc/stdlib/strtold.c | 10 |
3 files changed, 18 insertions, 4 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 26d1668ca..ae3754746 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,11 @@ +2014-03-07 Corinna Vinschen <vinschen@redhat.com> + Jeff Johnston <jjohnstn@redhat.com> + + * libc/include/stdlib.h (strtold): Define if _HAVE_LONG_DOUBLE is + defined. + * libc/stdlib/strtold.c (strtold): Ditto. Call strtod on systems + with long double == double, _strtold otherwise. + 2014-03-05 Corinna Vinschen <vinschen@redhat.com> * libc/include/time.h (__TM_GMTOFF): Remove Cygwin-specific definition. diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h index ef218663b..905cf5d59 100644 --- a/newlib/libc/include/stdlib.h +++ b/newlib/libc/include/stdlib.h @@ -231,11 +231,11 @@ int _EXFUN(_system_r,(struct _reent *, const char *)); _VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *)); /* On platforms where long double equals double. */ -#ifdef _LDBL_EQ_DBL +#ifdef _HAVE_LONG_DOUBLE #if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 201103L) extern long double strtold (const char *__restrict, char **__restrict); #endif -#endif /* _LDBL_EQ_DBL */ +#endif /* _HAVE_LONG_DOUBLE */ _END_STD_C diff --git a/newlib/libc/stdlib/strtold.c b/newlib/libc/stdlib/strtold.c index 390ec735b..a620251ee 100644 --- a/newlib/libc/stdlib/strtold.c +++ b/newlib/libc/stdlib/strtold.c @@ -31,12 +31,18 @@ POSSIBILITY OF SUCH DAMAGE. #include <stdlib.h> #include "local.h" +#ifdef _HAVE_LONG_DOUBLE +extern long double _strtold (const char *, char **); + /* On platforms where long double is as wide as double. */ -#ifdef _LDBL_EQ_DBL long double strtold (const char *__restrict s00, char **__restrict se) { +#ifdef _LDBL_EQ_DBL return strtod(s00, se); +#else + return _strtold (s00, se); +#endif } -#endif /* _LDBL_EQ_DBL */ +#endif /* _HAVE_LONG_DOUBLE */ |