Declare wcstof functions for more _FloatN, _FloatNx types [committed]

Message ID alpine.DEB.2.20.1711022336300.5851@digraph.polyomino.org.uk
State Committed
Headers

Commit Message

Joseph Myers Nov. 2, 2017, 11:36 p.m. UTC
  Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch arranges for <wchar.h> to declare wcstof functions
for all such types, similarly to the declarations already present for
_Float128.

Tested for x86_64.  Committed.

2017-11-02  Joseph Myers  <joseph@codesourcery.com>

	* 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.
  

Patch

diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index 4f16f98..e3133d7 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 */