* Support defining strtof32, wcstof32 aliases [committed]
@ 2017-12-06 23:07 Joseph Myers
0 siblings, 0 replies; only message in thread
From: Joseph Myers @ 2017-12-06 23:07 UTC (permalink / raw)
To: libc-alpha
This patch adds support for defining strtof32, wcstof32, strtof32_l
and wcstof32_l functions as aliases of the corresponding float
functions when _Float32 support is enabled.
Tested for x86_64; also tested with build-many-glibcs.py in
conjunction with other _Float32 changes. Committed.
2017-12-06 Joseph Myers <joseph@codesourcery.com>
* stdlib/strtof.c: Include <bits/floatn.h>
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32): Define
and later undefine as macro. Define as weak alias if
[!USE_WIDE_CHAR].
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32): Define
and later undefine as macro. Define as weak alias if
[USE_WIDE_CHAR].
* stdlib/strtof_l.c: Include <bits/floatn.h>
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strtof32_l): Define
and later undefine as macro. Define as weak alias if
[!USE_WIDE_CHAR].
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (wcstof32_l): Define
and later undefine as macro. Define as weak alias if
[USE_WIDE_CHAR].
diff --git a/stdlib/strtof.c b/stdlib/strtof.c
index 6005121..7f47362 100644
--- a/stdlib/strtof.c
+++ b/stdlib/strtof.c
@@ -20,6 +20,13 @@
/* The actual implementation for all floating point sizes is in strtod.c.
These macros tell it to produce the `float' version, `strtof'. */
+#include <bits/floatn.h>
+
+#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
+# define strtof32 __hide_strtof32
+# define wcstof32 __hide_wcstof32
+#endif
+
#define FLOAT float
#define FLT FLT
#ifdef USE_WIDE_CHAR
@@ -32,3 +39,13 @@
#include "strtod.c"
+
+#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
+# undef strtof32
+# undef wcstof32
+# ifdef USE_WIDE_CHAR
+weak_alias (wcstof, wcstof32)
+# else
+weak_alias (strtof, strtof32)
+# endif
+#endif
diff --git a/stdlib/strtof_l.c b/stdlib/strtof_l.c
index 33be42f..5735240 100644
--- a/stdlib/strtof_l.c
+++ b/stdlib/strtof_l.c
@@ -17,6 +17,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <bits/floatn.h>
+
+#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
+# define strtof32_l __hide_strtof32_l
+# define wcstof32_l __hide_wcstof32_l
+#endif
+
#include <locale.h>
extern float ____strtof_l_internal (const char *, char **, int, locale_t);
@@ -36,3 +43,13 @@ extern float ____strtof_l_internal (const char *, char **, int, locale_t);
#define FLOAT_HUGE_VAL HUGE_VALF
#include "strtod_l.c"
+
+#if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
+# undef strtof32_l
+# undef wcstof32_l
+# ifdef USE_WIDE_CHAR
+weak_alias (wcstof_l, wcstof32_l)
+# else
+weak_alias (strtof_l, strtof32_l)
+# endif
+#endif
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-12-06 23:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-06 23:07 Support defining strtof32, wcstof32 aliases [committed] Joseph Myers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).