aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/random_7.f90
blob: b88dbc7a01dcd039d3ddc06bc227341cb851f7fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
! { dg-do run }
! { dg-options "-fdefault-integer-8" }
!
program trs
  implicit none
  integer :: size, ierr
  integer, allocatable, dimension(:) :: seed, check
  call test_random_seed(size)
  allocate(seed(size),check(size))
  seed(:) = huge(seed) / 17
  call test_random_seed(put=seed)
  call test_random_seed(get=check)
  ! In the current xorshift1024* implementation the last seed value is
  ! special
  seed(size) = check(size)
  if (any (seed /= check)) STOP 1
contains
  subroutine test_random_seed(size, put, get)
    integer, optional :: size
    integer, dimension(:), optional :: put
    integer, dimension(:), optional :: get
    call random_seed(size, put, get)
  end subroutine test_random_seed
end program trs