! { dg-do compile }
|
! { dg-do compile }
|
! Test the patch for PR30081 in which non-generic intrinsic
|
! Test the patch for PR30081 in which non-generic intrinsic
|
! procedures could not be overloaded by generic interfaces.
|
! procedures could not be overloaded by generic interfaces.
|
!
|
!
|
! Contributed by Harald Anlauf
|
! Contributed by Harald Anlauf
|
!
|
!
|
module gfcbug46
|
module gfcbug46
|
interface random_seed
|
interface random_seed
|
module procedure put_seed
|
module procedure put_seed
|
end interface
|
end interface
|
interface random_number
|
interface random_number
|
module procedure random_vector
|
module procedure random_vector
|
end interface
|
end interface
|
type t_t
|
type t_t
|
real :: x(2)
|
real :: x(2)
|
end type t_t
|
end type t_t
|
contains
|
contains
|
subroutine put_seed (n, seed)
|
subroutine put_seed (n, seed)
|
integer, intent(inout) :: n
|
integer, intent(inout) :: n
|
integer, intent(in) :: seed
|
integer, intent(in) :: seed
|
call random_seed (size=n)
|
call random_seed (size=n)
|
end subroutine put_seed
|
end subroutine put_seed
|
subroutine random_vector (t)
|
subroutine random_vector (t)
|
type(t_t) :: t
|
type(t_t) :: t
|
call random_number (t% x)
|
call random_number (t% x)
|
end subroutine random_vector
|
end subroutine random_vector
|
end module gfcbug46
|
end module gfcbug46
|
|
|
use gfcbug46
|
use gfcbug46
|
type(t_t) :: z
|
type(t_t) :: z
|
integer :: n = 2, seed = 1
|
integer :: n = 2, seed = 1
|
call put_seed (n, seed)
|
call put_seed (n, seed)
|
call random_number (z)
|
call random_number (z)
|
print *, z
|
print *, z
|
end
|
end
|
! { dg-final { cleanup-modules "gfcbug46" } }
|
! { dg-final { cleanup-modules "gfcbug46" } }
|
|
|