With Dominique's fix so that the test case runs, I get failure.

Here is a slightly modified version to illustrate:

! { dg-do run }
! { dg-require-effective-target fortran_large_real }
program main
  integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
  real(kind=k) a,b,c
  a = 1.1_k
  open(10,convert="swap",form="unformatted") ! { dg-warning "Extension:
CONVERT" }
  write(10) a
  backspace 10
  read (10) b
  close(10,status="delete")
  print *, a, b
  !if (a /= b) call abort
  write (11) a
  backspace 11
  open (11,form="unformatted")
  read (11) c
  print *, a, c
  if (a .ne. c) call abort
  close (11, status="delete")
end program main

The first test fails miserably.
$ ./a.out
   1.100000000000000000        3.9138956899828401554E-4942
   1.100000000000000000         1.100000000000000000      

I gather that this will not show up on some platforms.


-- 
           Summary: Failure with unf_io_convert_3.f90
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jvdelisle at gcc dot gnu dot org
  GCC host triplet: x86-64-pc-Linux


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

Reply via email to