blob: a3fd3450013bfe99d8cc513630fcb5b4af2f225a [file] [log] [blame]
! { dg-do compile }
! Tests the fix for PR33945, the host association of overloaded_type_s
! would be incorrectly blocked by the use associated overloaded_type.
!
! Contributed by Jonathan Hogg <J.Hogg@rl.ac.uk>
!
module dtype
implicit none
type overloaded_type
double precision :: part
end type
interface overloaded_sub
module procedure overloaded_sub_d
end interface
contains
subroutine overloaded_sub_d(otype)
type(overloaded_type), intent(in) :: otype
print *, "d type = ", otype%part
end subroutine
end module
module stype
implicit none
type overloaded_type
real :: part
end type
interface overloaded_sub
module procedure overloaded_sub_s
end interface
contains
subroutine overloaded_sub_s(otype)
type(overloaded_type), intent(in) :: otype
print *, "s type = ", otype%part
end subroutine
end module
program test
use stype, overloaded_type_s => overloaded_type
use dtype, overloaded_type_d => overloaded_type
implicit none
type(overloaded_type_s) :: sval
type(overloaded_type_d) :: dval
sval%part = 1
dval%part = 2
call fred(sval, dval)
contains
subroutine fred(sval, dval)
use stype
type(overloaded_type_s), intent(in) :: sval ! This caused an error
type(overloaded_type_d), intent(in) :: dval
call overloaded_sub(sval)
call overloaded_sub(dval)
end subroutine
end program