]> Savannah Git Hosting - gnulib.git/commit
float: Update to mostly guarantee ISO C 23 compliance.
authorBruno Haible <bruno@clisp.org>
Wed, 31 Jul 2024 22:46:49 +0000 (00:46 +0200)
committerBruno Haible <bruno@clisp.org>
Wed, 31 Jul 2024 22:47:42 +0000 (00:47 +0200)
commitfda40b6102f6a7452143d9c5cb66000805ace3b2
tree5ffdefdf506ee263335b797ac2fee6f2727c148e
parenta05ec21958eb6afb6c7e419b8fb543e26c0d00e1
float: Update to mostly guarantee ISO C 23 compliance.

* doc/posix-headers/float.texi: Mention the various portability
problems.
* lib/float.in.h (FLT_HAS_SUBNORM, FLT_DECIMAL_DIG, FLT_TRUE_MIN,
DBL_HAS_SUBNORM, DBL_DECIMAL_DIG, DBL_TRUE_MIN, LDBL_HAS_SUBNORM,
LDBL_DECIMAL_DIG, LDBL_TRUE_MIN): New macros.
(gl_LDBL_TRUE_MIN): New declaration.
(FLT_IS_IEC_60559, FLT_NORM_MAX, FLT_SNAN, GNULIB_defined_FLT_SNAN,
DBL_IS_IEC_60559, DBL_NORM_MAX, DBL_SNAN, GNULIB_defined_DBL_SNAN,
LDBL_IS_IEC_60559, LDBL_NORM_MAX, LDBL_SNAN, GNULIB_defined_LDBL_SNAN):
New macros.
(gl_FLT_SNAN_t, gl_DBL_SNAN_t, gl_LDBL_SNAN_t): New types.
(gl_FLT_SNAN, gl_DBL_SNAN, gl_LDBL_SNAN): New declarations.
* lib/float.c (gl_LDBL_TRUE_MIN): New variable.
(gl_FLT_SNAN, gl_DBL_SNAN, gl_LDBL_SNAN): New variables.
* m4/float_h.m4 (gl_FLOAT_H): Add check whether float.h conforms to
ISO C23. Set REPLACE_FLOAT_SNAN.
* modules/float (configure.ac): Test also REPLACE_FLOAT_SNAN. Require
gl_BIGENDIAN.
* tests/test-float.c: Also check FLT_EVAL_METHOD, FLT_HAS_SUBNORM,
FLT_DECIMAL_DIG, FLT_IS_IEC_60559, FLT_TRUE_MIN, FLT_NORM_MAX,
DBL_HAS_SUBNORM, DBL_DECIMAL_DIG, DBL_IS_IEC_60559, DBL_TRUE_MIN,
DBL_NORM_MAX, LDBL_HAS_SUBNORM, LDBL_DECIMAL_DIG, LDBL_IS_IEC_60559.
Conditionally check LDBL_TRUE_MIN, LDBL_NORM_MAX.
Include isnanf-nolibm.h, isnand-nolibm.h, isnanl-nolibm.h.
(test_float): Check the values of FLT_HAS_SUBNORM, FLT_DECIMAL_DIG,
FLT_TRUE_MIN, FLT_IS_IEC_60559, FLT_NORM_MAX, FLT_SNAN.
(test_double): Check the values of DBL_HAS_SUBNORM, DBL_DECIMAL_DIG,
DBL_TRUE_MIN, DBL_IS_IEC_60559, DBL_NORM_MAX, DBL_SNAN.
(test_long_double): Check the values of LDBL_HAS_SUBNORM,
LDBL_DECIMAL_DIG, LDBL_TRUE_MIN, LDBL_IS_IEC_60559, LDBL_NORM_MAX,
LDBL_SNAN.
* modules/float-tests (Depends-on): Add isnanf-nolibm, isnand-nolibm,
isnanl-nolibm.
ChangeLog
doc/posix-headers/float.texi
lib/float.c
lib/float.in.h
m4/float_h.m4
modules/float
modules/float-tests
tests/test-float.c