| ! { dg-do run } |
| ! |
| ! PR fortran/41777 |
| ! |
| module m |
| type t2 |
| integer :: i |
| end type t2 |
| interface f |
| module procedure f2 |
| end interface f |
| contains |
| function f2(a) |
| type(t2), pointer :: f2,a |
| f2 => a |
| end function f2 |
| end module m |
| |
| use m |
| implicit none |
| type(t2), pointer :: a |
| allocate(a) |
| if (.not. associated(a,f(a))) call abort() |
| call cmpPtr(a,f2(a)) |
| call cmpPtr(a,f(a)) |
| deallocate(a) |
| contains |
| subroutine cmpPtr(a,b) |
| type(t2), pointer :: a,b |
| ! print *, associated(a,b) |
| if (.not. associated (a, b)) call abort() |
| end subroutine cmpPtr |
| end |
| |
| ! { dg-final { cleanup-modules "m" } } |