diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-12-06 23:06:12 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-12-06 23:06:12 +0000 |
commit | fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a (patch) | |
tree | 4a3bc2b05252124e5348b506c742c59da642820d /stdlib | |
parent | fc10cc3f3223f1fa8c8dcc6743d18d1392808d71 (diff) | |
download | glibc-fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a.zip glibc-fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a.tar.gz glibc-fb1ca2aa3e58cad474c918f34e5e5eed70f5d94a.tar.bz2 |
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')
-rw-r--r-- | stdlib/strtof.c | 17 | ||||
-rw-r--r-- | stdlib/strtof_l.c | 17 |
2 files changed, 34 insertions, 0 deletions
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 |