mirror of git://gcc.gnu.org/git/gcc.git
PR fortran/77261 Run random_3 testcase only when real(10) is available.
From-SVN: r239817
This commit is contained in:
parent
78a3bdba8a
commit
468d95c82c
|
|
@ -1,3 +1,9 @@
|
||||||
|
2016-08-29 Janne Blomqvist <jb@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/77261
|
||||||
|
* gfortran.dg/random_3.f90: Run testcase only when real(10) is
|
||||||
|
available.
|
||||||
|
|
||||||
2016-08-28 Tom de Vries <tom@codesourcery.com>
|
2016-08-28 Tom de Vries <tom@codesourcery.com>
|
||||||
|
|
||||||
PR lto/70955
|
PR lto/70955
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
! { dg-do run }
|
! { dg-do run }
|
||||||
! { dg-require-effective-target fortran_large_real }
|
! { dg-require-effective-target fortran_large_real }
|
||||||
! Check that the random_seed for real(10) or real(16) exists and that
|
! Check that the random_seed for real(10) exists and that
|
||||||
! real(8) and real(10) or real(16) random number generators
|
! real(8) and real(10) random number generators
|
||||||
! return the same sequence of values.
|
! return the same sequence of values.
|
||||||
! Mostly copied from random_2.f90
|
! Mostly copied from random_2.f90
|
||||||
program random_4
|
program random_3
|
||||||
integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
|
integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
|
||||||
|
|
||||||
integer, dimension(:), allocatable :: seed
|
integer, dimension(:), allocatable :: seed
|
||||||
|
|
@ -13,17 +13,23 @@ program random_4
|
||||||
real, parameter :: delta = 1.d-10
|
real, parameter :: delta = 1.d-10
|
||||||
integer n
|
integer n
|
||||||
|
|
||||||
call random_seed (size=n)
|
! Run the test only if real(10) is available. With the current
|
||||||
allocate (seed(n))
|
! xorshift1024* PRNG the real(16) generator uses two uint64_t values
|
||||||
call random_seed (get=seed)
|
! for every real(16) value generated, and hence the sequences won't
|
||||||
! Test both array valued and scalar routines.
|
! be the same as with real(4,8,10).
|
||||||
call random_number(r8)
|
if (k == 10) then
|
||||||
call random_number (r8(10))
|
call random_seed (size=n)
|
||||||
|
allocate (seed(n))
|
||||||
|
call random_seed (get=seed)
|
||||||
|
! Test both array valued and scalar routines.
|
||||||
|
call random_number(r8)
|
||||||
|
call random_number (r8(10))
|
||||||
|
|
||||||
! Reset the seed and get the real(8) values.
|
! Reset the seed and get the real(8) values.
|
||||||
call random_seed (put=seed)
|
call random_seed (put=seed)
|
||||||
call random_number(r10)
|
call random_number(r10)
|
||||||
call random_number (r10(10))
|
call random_number (r10(10))
|
||||||
|
|
||||||
if (any ((r8 - r10) .gt. delta)) call abort
|
if (any ((r8 - r10) .gt. delta)) call abort
|
||||||
end program random_4
|
end if
|
||||||
|
end program random_3
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue