[PATCH] Improve math_errhandling
Joseph Myers
joseph@codesourcery.com
Wed Nov 8 16:47:00 GMT 2017
On Wed, 8 Nov 2017, Wilco Dijkstra wrote:
> This is based on discussion in https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02096.html.
>
> Currently math_errhandling is always set to MATH_ERRNO | MATH_ERREXCEPT
> even if -fno-math-errno is used. It is not defined at all when fast-math
> is used, eventhough the GLIBC implementation always supports exceptions
> (on hardware floating point implementations). Improve this to take
> __NO_MATH_ERRNO__ into account and update comment.
Some bits/mathinline.h implementations might not produce appropriate
exceptions with -ffast-math. Likewise versions inlined by GCC.
The header definitely needs to check for __FAST_MATH__. There is a case
for defining math_errhandling to 0 in the __FAST_MATH__ case (a
nonconforming value, but -ffast-math is a nonconforming mode, and 0
accurately reflects the situation that neither errno nor exceptions can be
relied upon in that case) rather than the existing state of being
undefined (also nonconforming). Note that GCC versions before GCC 5 don't
define __NO_MATH_ERRNO__ at all.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list