From 43ddff2e364c69847f5f698f6a43f9dde328b76a Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 2 Nov 2017 23:36:00 +0000 Subject: [PATCH] Declare wcstof functions for more _FloatN, _FloatNx types. Continuing the preparation for additional _FloatN / _FloatNx type support, this patch arranges for to declare wcstof functions for all such types, similarly to the declarations already present for _Float128. Tested for x86_64. * wcsmbs/wchar.h [__HAVE_FLOAT16 && __USE_GNU] (wcstof16): Declare. [__HAVE_FLOAT32 && __USE_GNU] (wcstof32): Likewise. [__HAVE_FLOAT64 && __USE_GNU] (wcstof64): Likewise. [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x): Likewise. [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x): Likewise. [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x): Likewise. [__HAVE_FLOAT16 && __USE_GNU] (wcstof16_l): Likewise. [__HAVE_FLOAT32 && __USE_GNU] (wcstof32_l): Likewise. [__HAVE_FLOAT64 && __USE_GNU] (wcstof64_l): Likewise. [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x_l): Likewise. [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x_l): Likewise. [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x_l): Likewise. --- ChangeLog | 16 ++++++++++++ wcsmbs/wchar.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0125305f6e..626828e331 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2017-11-02 Joseph Myers + + * wcsmbs/wchar.h [__HAVE_FLOAT16 && __USE_GNU] (wcstof16): + Declare. + [__HAVE_FLOAT32 && __USE_GNU] (wcstof32): Likewise. + [__HAVE_FLOAT64 && __USE_GNU] (wcstof64): Likewise. + [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x): Likewise. + [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x): Likewise. + [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x): Likewise. + [__HAVE_FLOAT16 && __USE_GNU] (wcstof16_l): Likewise. + [__HAVE_FLOAT32 && __USE_GNU] (wcstof32_l): Likewise. + [__HAVE_FLOAT64 && __USE_GNU] (wcstof64_l): Likewise. + [__HAVE_FLOAT32X && __USE_GNU] (wcstof32x_l): Likewise. + [__HAVE_FLOAT64X && __USE_GNU] (wcstof64x_l): Likewise. + [__HAVE_FLOAT128X && __USE_GNU] (wcstof128x_l): Likewise. + 2017-11-02 Mike FABIAN [BZ #22382] diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h index 4f16f98b1d..e3133d73f2 100644 --- a/wcsmbs/wchar.h +++ b/wcsmbs/wchar.h @@ -385,12 +385,43 @@ extern long double wcstold (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) __THROW; #endif /* C99 */ -/* Likewise for `_Float128' when support is enabled. */ +/* Likewise for `_FloatN' and `_FloatNx' when support is enabled. */ + +#if __HAVE_FLOAT16 && defined __USE_GNU +extern _Float16 wcstof16 (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) __THROW; +#endif + +#if __HAVE_FLOAT32 && defined __USE_GNU +extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) __THROW; +#endif + +#if __HAVE_FLOAT64 && defined __USE_GNU +extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) __THROW; +#endif + #if __HAVE_FLOAT128 && defined __USE_GNU extern _Float128 wcstof128 (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) __THROW; #endif +#if __HAVE_FLOAT32X && defined __USE_GNU +extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) __THROW; +#endif + +#if __HAVE_FLOAT64X && defined __USE_GNU +extern _Float64x wcstof64x (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) __THROW; +#endif + +#if __HAVE_FLOAT128X && defined __USE_GNU +extern _Float128x wcstof128x (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr) __THROW; +#endif + /* Convert initial portion of wide string NPTR to `long int' representation. */ @@ -470,11 +501,47 @@ extern long double wcstold_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) __THROW; +# if __HAVE_FLOAT16 +extern _Float16 wcstof16_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + locale_t __loc) __THROW; +# endif + +# if __HAVE_FLOAT32 +extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + locale_t __loc) __THROW; +# endif + +# if __HAVE_FLOAT64 +extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + locale_t __loc) __THROW; +# endif + # if __HAVE_FLOAT128 extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) __THROW; # endif + +# if __HAVE_FLOAT32X +extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + locale_t __loc) __THROW; +# endif + +# if __HAVE_FLOAT64X +extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + locale_t __loc) __THROW; +# endif + +# if __HAVE_FLOAT128X +extern _Float128x wcstof128x_l (const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + locale_t __loc) __THROW; +# endif #endif /* use GNU */