[fortran, patch] Add Fortran 2003 IEEE intrinsic modules
FX
fxcoudert@gmail.com
Fri Nov 22 08:44:00 GMT 2013
> I have boostrapped x86_64-apple-darwin13 with your patch on top of revision 205224.
> I am currently regtesting and I see the following failures:
>
> FAIL: 18_support/numeric_limits/denorm_min.cc (test for excess errors)
Yeah, I thought { dg-add-options ieee } was Fortran-only, but it’s not. So I’m passing Fortran options to the C/C++ driver, who doesn’t like it.
> As a general comment, I think the tests should go in a gfortran.dg/ieee directory
> and the options "-fno-unsafe-math-optimizations -frounding-math -fsignaling-nans"
> should be handled by an ieee.exp driver, rather than highjacking target-supports.exp.
I followed the existing logic (other intrinsic modules don’t have their own directory)… but I’m willing to move it to a special directory, with a specific driver.
> AFAICT rounding modes are not supported for real(10) and real(16). I almost
> expect it for real(10), but is it also true for real(16)?
Yes, right now, support is enable for C float and double types, where we can expect the math library to have decent IEEE support (and if it does not, we can submit bugs and/or blacklist the target). Support for long double requires a libm with good long double variants, something our bug history shows is never an easy assumption (the BSD’s, Windows and Mac OS X being repeat offenders there). Support for __float128 requires careful evaluation of the IEEE support for arithmetic operations and libquadmath, something I haven’t (yet) had the time to do.
FX
More information about the Fortran
mailing list