mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Declare strtof, strfromf functions for more _FloatN, _FloatNx types.
Continuing the preparation for additional _FloatN / _FloatNx type support, this patch arranges for <stdlib.h> to declare strtof and strfromf functions for all such types, similarly to the declarations already present for _Float128. Tested for x86_64. * stdlib/stdlib.h [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof16): Declare. [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof32): Likewise. [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof64): Likewise. [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof32x): Likewise. [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof64x): Likewise. [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof128x): Likewise. [__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strfromf16): Likewise. [__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strfromf32): Likewise. [__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strfromf64): Likewise. [__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strfromf32x): Likewise. [__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strfromf64x): Likewise. [__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strfromf128x): Likewise. [__USE_GNU && __HAVE_FLOAT16] (strtof16_l): Likewise. [__USE_GNU && __HAVE_FLOAT32] (strtof32_l): Likewise. [__USE_GNU && __HAVE_FLOAT64] (strtof64_l): Likewise. [__USE_GNU && __HAVE_FLOAT32X] (strtof32x_l): Likewise. [__USE_GNU && __HAVE_FLOAT64X] (strtof64x_l): Likewise. [__USE_GNU && __HAVE_FLOAT128X] (strtof128x_l): Likewise.
This commit is contained in:
34
ChangeLog
34
ChangeLog
@ -1,3 +1,37 @@
|
|||||||
|
2017-11-03 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* stdlib/stdlib.h
|
||||||
|
[__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof16):
|
||||||
|
Declare.
|
||||||
|
[__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof32):
|
||||||
|
Likewise.
|
||||||
|
[__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (strtof64):
|
||||||
|
Likewise.
|
||||||
|
[__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strtof32x): Likewise.
|
||||||
|
[__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strtof64x): Likewise.
|
||||||
|
[__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strtof128x): Likewise.
|
||||||
|
[__HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strfromf16): Likewise.
|
||||||
|
[__HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strfromf32): Likewise.
|
||||||
|
[__HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strfromf64): Likewise.
|
||||||
|
[__HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strfromf32x): Likewise.
|
||||||
|
[__HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strfromf64x): Likewise.
|
||||||
|
[__HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)]
|
||||||
|
(strfromf128x): Likewise.
|
||||||
|
[__USE_GNU && __HAVE_FLOAT16] (strtof16_l): Likewise.
|
||||||
|
[__USE_GNU && __HAVE_FLOAT32] (strtof32_l): Likewise.
|
||||||
|
[__USE_GNU && __HAVE_FLOAT64] (strtof64_l): Likewise.
|
||||||
|
[__USE_GNU && __HAVE_FLOAT32X] (strtof32x_l): Likewise.
|
||||||
|
[__USE_GNU && __HAVE_FLOAT64X] (strtof64x_l): Likewise.
|
||||||
|
[__USE_GNU && __HAVE_FLOAT128X] (strtof128x_l): Likewise.
|
||||||
|
|
||||||
2017-11-03 Richard Henderson <rth@twiddle.net>
|
2017-11-03 Richard Henderson <rth@twiddle.net>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/aarch64/sysconf.c: New file.
|
* sysdeps/unix/sysv/linux/aarch64/sysconf.c: New file.
|
||||||
|
119
stdlib/stdlib.h
119
stdlib/stdlib.h
@ -128,10 +128,47 @@ extern long double strtold (const char *__restrict __nptr,
|
|||||||
__THROW __nonnull ((1));
|
__THROW __nonnull ((1));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Likewise for '_FloatN' and '_FloatNx'. */
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern _Float16 strtof16 (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr)
|
||||||
|
__THROW __nonnull ((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern _Float32 strtof32 (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr)
|
||||||
|
__THROW __nonnull ((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern _Float64 strtof64 (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr)
|
||||||
|
__THROW __nonnull ((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
/* Likewise for the '_Float128' format */
|
|
||||||
extern _Float128 strtof128 (const char *__restrict __nptr,
|
extern _Float128 strtof128 (const char *__restrict __nptr,
|
||||||
char **__restrict __endptr)
|
char **__restrict __endptr)
|
||||||
|
__THROW __nonnull ((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern _Float32x strtof32x (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr)
|
||||||
|
__THROW __nonnull ((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern _Float64x strtof64x (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr)
|
||||||
|
__THROW __nonnull ((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern _Float128x strtof128x (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr)
|
||||||
__THROW __nonnull ((1));
|
__THROW __nonnull ((1));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -185,12 +222,48 @@ extern int strfroml (char *__dest, size_t __size, const char *__format,
|
|||||||
__THROW __nonnull ((3));
|
__THROW __nonnull ((3));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern int strfromf16 (char *__dest, size_t __size, const char * __format,
|
||||||
|
_Float16 __f)
|
||||||
|
__THROW __nonnull ((3));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern int strfromf32 (char *__dest, size_t __size, const char * __format,
|
||||||
|
_Float32 __f)
|
||||||
|
__THROW __nonnull ((3));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern int strfromf64 (char *__dest, size_t __size, const char * __format,
|
||||||
|
_Float64 __f)
|
||||||
|
__THROW __nonnull ((3));
|
||||||
|
#endif
|
||||||
|
|
||||||
#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
extern int strfromf128 (char *__dest, size_t __size, const char * __format,
|
extern int strfromf128 (char *__dest, size_t __size, const char * __format,
|
||||||
_Float128 __f)
|
_Float128 __f)
|
||||||
__THROW __nonnull ((3));
|
__THROW __nonnull ((3));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern int strfromf32x (char *__dest, size_t __size, const char * __format,
|
||||||
|
_Float32x __f)
|
||||||
|
__THROW __nonnull ((3));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern int strfromf64x (char *__dest, size_t __size, const char * __format,
|
||||||
|
_Float64x __f)
|
||||||
|
__THROW __nonnull ((3));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
|
||||||
|
extern int strfromf128x (char *__dest, size_t __size, const char * __format,
|
||||||
|
_Float128x __f)
|
||||||
|
__THROW __nonnull ((3));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __USE_GNU
|
#ifdef __USE_GNU
|
||||||
/* Parallel versions of the functions above which take the locale to
|
/* Parallel versions of the functions above which take the locale to
|
||||||
@ -232,12 +305,54 @@ extern long double strtold_l (const char *__restrict __nptr,
|
|||||||
locale_t __loc)
|
locale_t __loc)
|
||||||
__THROW __nonnull ((1, 3));
|
__THROW __nonnull ((1, 3));
|
||||||
|
|
||||||
|
# if __HAVE_FLOAT16
|
||||||
|
extern _Float16 strtof16_l (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr,
|
||||||
|
locale_t __loc)
|
||||||
|
__THROW __nonnull ((1, 3));
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __HAVE_FLOAT32
|
||||||
|
extern _Float32 strtof32_l (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr,
|
||||||
|
locale_t __loc)
|
||||||
|
__THROW __nonnull ((1, 3));
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __HAVE_FLOAT64
|
||||||
|
extern _Float64 strtof64_l (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr,
|
||||||
|
locale_t __loc)
|
||||||
|
__THROW __nonnull ((1, 3));
|
||||||
|
# endif
|
||||||
|
|
||||||
# if __HAVE_FLOAT128
|
# if __HAVE_FLOAT128
|
||||||
extern _Float128 strtof128_l (const char *__restrict __nptr,
|
extern _Float128 strtof128_l (const char *__restrict __nptr,
|
||||||
char **__restrict __endptr,
|
char **__restrict __endptr,
|
||||||
locale_t __loc)
|
locale_t __loc)
|
||||||
__THROW __nonnull ((1, 3));
|
__THROW __nonnull ((1, 3));
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if __HAVE_FLOAT32X
|
||||||
|
extern _Float32x strtof32x_l (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr,
|
||||||
|
locale_t __loc)
|
||||||
|
__THROW __nonnull ((1, 3));
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __HAVE_FLOAT64X
|
||||||
|
extern _Float64x strtof64x_l (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr,
|
||||||
|
locale_t __loc)
|
||||||
|
__THROW __nonnull ((1, 3));
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __HAVE_FLOAT128X
|
||||||
|
extern _Float128x strtof128x_l (const char *__restrict __nptr,
|
||||||
|
char **__restrict __endptr,
|
||||||
|
locale_t __loc)
|
||||||
|
__THROW __nonnull ((1, 3));
|
||||||
|
# endif
|
||||||
#endif /* GNU */
|
#endif /* GNU */
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user