40 lines
967 B
Fortran
40 lines
967 B
Fortran
|
! { dg-do compile }
|
||
|
! Tests the fix for a further regression caused by the
|
||
|
! fix for PR28788 and posted as PR28908. The problem was
|
||
|
! caused by the patch preventing interface derived types
|
||
|
! from associating with identical derived types in the
|
||
|
! containing namespaces.
|
||
|
!
|
||
|
! Contributed by HJ Lu <hjl@lucon.org>
|
||
|
!
|
||
|
module bar
|
||
|
implicit none
|
||
|
public
|
||
|
type ESMF_Time
|
||
|
integer :: DD
|
||
|
end type
|
||
|
end module bar
|
||
|
|
||
|
module foo
|
||
|
use bar
|
||
|
implicit none
|
||
|
private
|
||
|
type ESMF_Clock
|
||
|
type(ESMF_Time) :: CurrTime
|
||
|
end type
|
||
|
interface operator (+)
|
||
|
function add (x, y)
|
||
|
use bar
|
||
|
type(ESMF_Time) :: add
|
||
|
type(ESMF_Time), intent(in) :: x
|
||
|
type(ESMF_Time), intent(in) :: y
|
||
|
end function add
|
||
|
end interface
|
||
|
contains
|
||
|
subroutine ESMF_ClockAdvance(clock)
|
||
|
type(ESMF_Clock), intent(inout) :: clock
|
||
|
clock%CurrTime = clock%CurrTime + clock%CurrTime
|
||
|
end subroutine ESMF_ClockAdvance
|
||
|
end module foo
|
||
|
! { dg-final { cleanup-modules "foo bar" } }
|