This one needs the same fix for x86_64 and i386 as the fsetenv() function.
2023-10-30 Bruno Haible
fenv-exceptions-state-c99: Fix the x86_64 and i386 case.
* lib/fenv-except-state-set.c (fesetexceptflag): Make sure to restore
the exception trap bits in all cases.
From
This module implements the ISO C 23 API for saving and restoring the
floating-point exception flags. Compare to ISO C 99, only the function
fetestexceptflag
has been added.
2023-10-30 Bruno Haible
fenv-exceptions-state-c23: Add tests.
* tests/test-fenv-except-state-3.c: New
This new module implements the ISO C 99 functions for saving and restoring the
floating-point exception flags.
The unit tests uncovered bugs in glibc, musl libc (*), macOS, AIX, mingw.
(*) The one on musl libc is a documented limitation.
2023-10-30 Bruno Haible
fenv-exceptions-state
Oops, this code has a bug on x86_64 and i386: It may leave the exception
traps masked, due to a side effect of the 'fnsetenv' instruction. This
patch should fix it.
2023-10-30 Bruno Haible
fenv-exceptions-tracking-{c99,c23}: Fix the x86_64 and i386 case.
* lib/fenv-except-trac