Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-03-08 00:06:54 +0400
committerCorinna Vinschen <corinna@vinschen.de>2014-03-08 00:06:54 +0400
commit0b3ad39364f952e2cdc2fe31408bff678ab39363 (patch)
treed22c80051d01f847af805573de433370e7e049e1 /newlib
parent29adfd78bd5870268f0b930f25374f7299dd7e8d (diff)
* 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.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog8
-rw-r--r--newlib/libc/include/stdlib.h4
-rw-r--r--newlib/libc/stdlib/strtold.c10
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 */