http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48979
--- Comment #9 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-05-12 20:53:37 UTC --- On Thu, May 12, 2011 at 08:40:48PM +0000, burnus at gcc dot gnu.org wrote: > (In reply to comment #7) > > + return range_check (result, "FRACTION"); > > Can we additionally add to the range_check() error messages a note like "This > check can be disabled with the option -fno-range-check"? We already did so at > several places. I think without, one does not know that one can easily disable > it. > > An alternative would be to switch to the middle-end way of showing warning > messages: > warning: unused variable 'x' [-Wunused-variable] > > Analogously, the error could then be "[-frange-check]". > I worked up the following patch. It now silently accepts fraction() for +-inf and nan for -std=gnu,f2003,f2008. If one uses -std=f95, you get a bunch of noise. I'll finish a patch on Saturday. EXPONENT() is going to be a little more work. When simplication does not apply, gfortran uses something like integer(kind=4) D.1559; integer(kind=4) D.1558; __builtin_frexpf (nan, &D.1558); D.1559 = D.1558; _gfortran_transfer_integer_write (&dt_parm.2, &D.1559, 4); to grab the fraction and exponent. For nan and +-inf, D.1558 is 0.