about summary refs log tree commit diff
path: root/stdlib/strtof_l.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-12-06 23:06:12 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-12-06 23:06:12 +0000
commitfb1ca2aa3e58cad474c918f34e5e5eed70f5d94a (patch)
tree4a3bc2b05252124e5348b506c742c59da642820d /stdlib/strtof_l.c
parentfc10cc3f3223f1fa8c8dcc6743d18d1392808d71 (diff)
downloadglibc-fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a.tar.gz
glibc-fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a.tar.xz
glibc-fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a.zip
Support defining strtof32, wcstof32 aliases.
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.

	* 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].
Diffstat (limited to 'stdlib/strtof_l.c')
-rw-r--r--stdlib/strtof_l.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/stdlib/strtof_l.c b/stdlib/strtof_l.c
index 33be42f96d..5735240afa 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