diff options
author | Rich Felker <dalias@aerifal.cx> | 2021-12-09 15:35:13 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2021-12-09 15:35:13 -0500 |
commit | 8d404733e1314ef633aa09a90865e94fe711b4ca (patch) | |
tree | 7655aae5d6622c3505c92f4a444b3363614893a2 /src/locale | |
parent | 98e688a9da5e7b2925dda17a2d6820dddf1fb287 (diff) | |
download | musl-8d404733e1314ef633aa09a90865e94fe711b4ca.tar.gz musl-8d404733e1314ef633aa09a90865e94fe711b4ca.tar.bz2 musl-8d404733e1314ef633aa09a90865e94fe711b4ca.tar.xz musl-8d404733e1314ef633aa09a90865e94fe711b4ca.zip |
fix mismatched signatures for strtod_l family
strtod_l, strtof_l, and strtold_l originally existed only as
glibc-ABI-compat symbols. as noted in the commit which added them,
17a60f9d327c6f8b5707a06f9497d846e75c01f2, making them aliases for the
non-_l functions was a hack and not appropriate if they ever became
public API.
unfortunately, commit 35eb1a1a9b97577e113240cd65bf9fc44b8df030 did
make them public without undoing the hack. fix that now by moving the
the _l functions to their own file as wrappers that just throw away
the locale_t argument.
Diffstat (limited to 'src/locale')
-rw-r--r-- | src/locale/strtod_l.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/locale/strtod_l.c b/src/locale/strtod_l.c new file mode 100644 index 00000000..574ba148 --- /dev/null +++ b/src/locale/strtod_l.c @@ -0,0 +1,22 @@ +#define _GNU_SOURCE +#include <stdlib.h> +#include <locale.h> + +float strtof_l(const char *restrict s, char **restrict p, locale_t l) +{ + return strtof(s, p); +} + +double strtod_l(const char *restrict s, char **restrict p, locale_t l) +{ + return strtod(s, p); +} + +long double strtold_l(const char *restrict s, char **restrict p, locale_t l) +{ + return strtold(s, p); +} + +weak_alias(strtof_l, __strtof_l); +weak_alias(strtod_l, __strtod_l); +weak_alias(strtold_l, __strtold_l); |