[Bug libfortran/35862] [F2003] Implement new rounding modes for run time
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jul 4 10:08:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35862
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #23 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Tobias Burnus from comment #22)
> Implemented: Rounding on output.
It seems as if one handles this best via:
#ifdef HAVE_FENV_H && (defined(FE_DOWNWARD) || defined(FE_TONEAREST) \
|| defined(FE_TOWARDZERO) || defined(FE_UPWARD))
int mode = fegetround ();
if (mode != wished_mode)
fesetround(round_dir); // Ignore result value; should be == 0
#endif
...
#ifdef HAVE_FENV_H && (defined(FE_DOWNWARD) || defined(FE_TONEAREST) \
|| defined(FE_TOWARDZERO) || defined(FE_UPWARD))
if (mode != wished_mode)
fesetround(round_dir); // Ignore result value
#endif
Or, possibly better, via some wrapper function in libgfortran/config/fpu-*.
More information about the Gcc-bugs
mailing list