diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | stdlib/strtof.c | 17 | ||||
-rw-r--r-- | stdlib/strtof_l.c | 17 |
3 files changed, 49 insertions, 0 deletions
@@ -1,5 +1,20 @@ 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]. + * stdlib/strfromf.c: Include <bits/floatn.h>. [__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32] (strfromf32): Define and later undefine as macro and define as weak alias. 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 |