[Bug middle-end/30816] gfortran.dg/g77/intrinsic-unix-erf.f tests fail with optimization

kargl at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Feb 16 03:53:00 GMT 2007



------- Comment #4 from kargl at gcc dot gnu dot org  2007-02-16 03:53 -------
(In reply to comment #3)
> I'll try to help but I don't think this has anything to do with my patches. 
> Fortran was using mpfr for evaluating intrinsics way before I touched anything,
> and I believe it uses it's own historical mechanism from it's frontend for
> accessing mpfr, unrelated to the middle-end builtins which I added.

gfortran doesn't constant fold erf.  This is due to your patch and
the fact that Tobi is using darwin.


> 1.  I don't see the error on sparc-sun-solaris2.10 (as of yesterday), and I
> can't find any other recent testresults that have the problem besides
> ppc-darwin.  It may be darwin-specific.

This is my best guess.  Consider

program j
  x = erf(1.5)
end program j


With a 4.2 gfortran prior to your patches, -fdump-tree-original gives

MAIN__ ()
{
  real4 x;

  _gfortran_set_std (70, 127, 0);
  x = __builtin_erff (1.5e+0);
}

With a fairly up to date trunk with your patch, I get

MAIN__ ()
{
  real4 x;

  _gfortran_set_std (70, 127, 0, 0);
  x = 9.66105163097381591796875e-1;
}


-- 

kargl at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30816



More information about the Gcc-bugs mailing list