[Patch, fortran] PR24174 real(10) and complex(10) array IO broken.
Janne Blomqvist
jblomqvi@cc.hut.fi
Tue Oct 25 06:16:00 GMT 2005
PING**2
On Tue, Oct 18, 2005 at 08:56:25PM +0300, Janne Blomqvist wrote:
> On Tue, Oct 18, 2005 at 08:05:04AM +0200, FX Coudert wrote:
> > I unfortunately don't have time to review this patch, but...
> >
> > >>! { dg-do run }
> >
> > You should make this conditionnal on effective target fortran_large_real.
> >
> > ! { dg-do run }
> > ! { dg-require-effective-target fortran_large_real }
> >
> > >> real(kind=10) :: a,b(2), c
> > >> complex(kind=10) :: d, e, f(2)
> >
> > And then declare those as
> >
> > integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
> >
> > real(kind=k) :: a,b(2),c
> > complex(kind=k) :: d,e,f(2)
>
> Ok, here is an updated testcase.
>
>
> --
> Janne Blomqvist
> ! { dg-do run }
> ! { dg-require-effective-target fortran_large_real }
> ! PR 24174
> program kind10_formatted_io
> ! 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
> complex(kind=k) :: d, e, f(2)
> character(len=180) :: tmp
> ! Test real(k) scalar and array formatted IO
> b(:) = 2.0_k
> write (tmp, *) b
> read (tmp, *) a, c
> if (a /= 2.0_k) call abort()
> if (c /= 2.0_k) call abort()
> ! Complex(k) scalar and array formatted and list formatted IO
> f = cmplx ( 1.0_k, 2.0_k, k)
> d = cmplx ( huge (1.0_k), huge (2.0_k), k)
> write (tmp, *) d
> ! read (tmp, *) e ! List formatted read doesn't work.
> ! if (e /= d) call abort()
> write (tmp, '(2(e12.4e5, 2x))') d
> ! read (tmp, '(2(e12.4e5, 2x))') e ! Read doesn't work either
> ! if (e /= d) call abort()
> end program kind10_formatted_io
--
Janne Blomqvist
More information about the Fortran
mailing list