This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: regressions?


> What does -fdump-tree-original show?  It should contain something
> like
> 
>       D.1250 = _gfortran_fraction_r4 (a);
>       _gfortran_transfer_real (&dt_parm.1, &D.1250, 4);
>     }
>     {
>       int4 D.1251;
> 
>       D.1251 = _gfortran_exponent_r4 (a);
> 
> These functions use libm's frexp to get the fraction and exponent.
> frexp may be expanded into a GCC builtin function or it could be
> from libm.  Either case, frexp appears to be broken.

I get:

[karma] bug/failed% cat exponent_1_red.f90.003t.original
MAIN__ ()
{
  static real4 a = 1.0e+0;

  _gfortran_set_std (70, 127, 0);
  {
    struct __st_parameter_dt dt_parm.0;

    dt_parm.0.common.filename = "exponent_1_red.f90";
    dt_parm.0.common.line = 11;
    dt_parm.0.common.unit = 6;
    dt_parm.0.common.flags = 128;
    _gfortran_st_write (&dt_parm.0);
    {
      real4 C.880 = 5.0e-1;

      _gfortran_transfer_real (&dt_parm.0, &C.880, 4);
    }
    {
      int4 C.881 = 1;

      _gfortran_transfer_integer (&dt_parm.0, &C.881, 4);
    }
    {
      real4 C.882 = 1.0e+0;

      _gfortran_transfer_real (&dt_parm.0, &C.882, 4);
    }
    _gfortran_st_write_done (&dt_parm.0);
  }
  {
    struct __st_parameter_dt dt_parm.1;

    dt_parm.1.common.filename = "exponent_1_red.f90";
    dt_parm.1.common.line = 12;
    dt_parm.1.common.unit = 6;
    dt_parm.1.common.flags = 128;
    _gfortran_st_write (&dt_parm.1);
    {
      real4 D.884;

      D.884 = (real4) _gfortran_iargc ();
      _gfortran_transfer_real (&dt_parm.1, &D.884, 4);
    }
    {
      int4 D.885;

      D.885 = _gfortran_iargc ();
      _gfortran_transfer_integer (&dt_parm.1, &D.885, 4);
    }
    {
      real4 D.887;

      D.887 = scalbnf ((real4) _gfortran_iargc (), _gfortran_iargc ());
      _gfortran_transfer_real (&dt_parm.1, &D.887, 4);
    }
    _gfortran_st_write_done (&dt_parm.1);
  }
}

No _gfortran_fraction_r4 nor _gfortran_exponent_r4.

Note that I cannot rule out that I did not applied the patch properly.

Dominique


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]