This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: regressions?
- From: dominiq at lps dot ens dot fr (Dominique Dhumieres)
- To: dominiq at lps dot ens dot fr, sgk at troutmask dot apl dot washington dot edu
- Cc: fortran at gcc dot gnu dot org
- Date: Wed, 4 Oct 2006 23:08:01 +0200 (CEST)
- Subject: 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