[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