This is the mail archive of the mailing list for the GCC 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]

[Bug libfortran/24685] New: real(10) formatted input is broken for huge values

Seems that the parsing routines cannot deal with big values:

! { dg-do run }
! { dg-require-effective-target fortran_large_real }
program huge_real10_formatted
  ! This should be kind=10 on systems that support it
  integer, parameter :: k = selected_real_kind (precision (0.0_8) + 1)
  real(kind=k) :: a,b(2), c
  character(len=180) :: tmp
  ! Test real(k) scalar and array formatted IO with big value
  b(:) = huge (1.0_k)/2
  print *, 'real(10) big value: ', b(1)
  write (tmp, *) b
  read (tmp, *) a, c
  print *, 'same value read again: ', a
  print *, 'difference: ', a-b(1)
  ! Test with really big value
  b(:) = huge (1.0_k)
  print *, 'huge value: ', b(1)
  write (tmp, *) b
  read (tmp, *) a, c ! This is line 19
  print *, "We don't get this far!"
  if (a /= b(1)) call abort ()
  if (c /= b(2)) call abort ()
end program huge_real10_formatted

Running this produces:

 real(10) big value:   5.948657476786159E+4931
 same value read again:   5.948657476786159E+4931
 difference:   1.751052108159553E+4915
 huge value:   1.189731495357232E+4932
At line 19 of file huge_real10_formatted.f90
Fortran runtime error: Range error during floating point read

Looking at the difference, there also seems to be some problem with

           Summary: real(10) formatted input is broken for huge values
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jblomqvi at cc dot hut dot fi
  GCC host triplet: i686-pc-linux-gnu

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