[Bug target/59316] gcc.dg/atomic/c11-atomic-exec-5.c FAILs on Solaris/SPARC
ebotcazou at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 2 22:48:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59316
--- Comment #10 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Fixing on SPARC.
Ugh. Linux and Solaris disagree on the values of the FE_* macros so we will
need to have OS-dependent code in the sparc_atomic_assign_expand_fenv hook if
we call __atomic_feraiseexcept (I wonder if the same issue exists for
x86/x86-64).
The feupdateenv implementation for SPARC in glibc calls feraiseexcept at the
end (like the x86 implementation), but it does so only for the "old"
exceptions. Yet the manpage seems to indicate that "old" and "new" exceptions
play a symmetrical role:
The feupdateenv() function installs the floating-point environment rep-
resented by the object *envp, except that currently raised exceptions
are not cleared. After calling this function, the raised exceptions
will be a bitwise OR of those previously set with those in *envp. As
before, the object *envp must be known to be valid.
The implementation for PowerPC does not call feraiseexcept at the end and
instead merges the exceptions in a symmetrical way.
Rainer, can you briefly describe the implementation of feupdateenv in the libm
of OpenSolaris?
More information about the Gcc-bugs
mailing list