[Bug fortran/33177] New: Wrong result from nint() on Cygwin

jvdelisle at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Aug 24 15:56:00 GMT 2007


With the following test case, nint gives wrong result.

svn Revision: 127756

! Program to test the real->integer conversion routines.
program intrinsic_integer
  implicit none
  real :: val
  integer :: i
  val = 0.7
  i = nint(val)
  print *, val, i
  val = -0.7
  i = nint(val)
  print *, val, i
end program

This gives:

$ ./a
  0.7000000               0
 -0.7000000               0


$ cat nint_test.f90.003t.original 
MAIN__ ()
{
  int4 i;
  real4 val;
  static int4 options.0[7] = {68, 127, 0, 0, 0, 1, 0};

  _gfortran_set_options (7, (void *) &options.0);
  val = 6.99999988079071044921875e-1;
  i = (int4) __builtin_lroundf (val);
  {
    struct __st_parameter_dt dt_parm.1;

    dt_parm.1.common.filename = &"nint_test.f90"[1]{lb: 1 sz: 1};
    dt_parm.1.common.line = 8;
    dt_parm.1.common.flags = 128;
    dt_parm.1.common.unit = 6;
    _gfortran_st_write (&dt_parm.1);
    _gfortran_transfer_real (&dt_parm.1, &val, 4);
    _gfortran_transfer_integer (&dt_parm.1, &i, 4);
    _gfortran_st_write_done (&dt_parm.1);
  }
  val = -6.99999988079071044921875e-1;
  i = (int4) __builtin_lroundf (val);
  {
    struct __st_parameter_dt dt_parm.2;

    dt_parm.2.common.filename = &"nint_test.f90"[1]{lb: 1 sz: 1};
    dt_parm.2.common.line = 11;
    dt_parm.2.common.flags = 128;
    dt_parm.2.common.unit = 6;
    _gfortran_st_write (&dt_parm.2);
    _gfortran_transfer_real (&dt_parm.2, &val, 4);
    _gfortran_transfer_integer (&dt_parm.2, &i, 4);
    _gfortran_st_write_done (&dt_parm.2);
  }
}


-- 
           Summary: Wrong result from nint() on Cygwin
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jvdelisle at gcc dot gnu dot org
  GCC host triplet: i686-pc-Cygwin


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



More information about the Gcc-bugs mailing list