| ! { dg-do compile } |
| ! |
| ! PR 85537: [F08] Invalid memory reference at runtime when calling subroutine through procedure pointer |
| ! |
| ! Contributed by Tiziano MΓΌller <dev-zero@gentoo.org> |
| |
| module m1 |
| implicit none |
| contains |
| subroutine foo() |
| integer :: a |
| |
| abstract interface |
| subroutine ibar() |
| end subroutine |
| end interface |
| |
| procedure(ibar), pointer :: bar_ptr => bar_impl ! { dg-error "invalid in procedure pointer initialization" } |
| |
| contains |
| subroutine bar_impl() |
| write (*,*) "foo" |
| a = a + 1 |
| end subroutine |
| |
| end subroutine |
| end module |
| |
| |
| module m2 |
| implicit none |
| contains |
| subroutine foo(dbar) |
| interface |
| subroutine dbar() |
| end subroutine |
| end interface |
| |
| procedure(dbar), pointer :: bar_ptr => dbar ! { dg-error "invalid in procedure pointer initialization" } |
| |
| call bar_ptr() |
| |
| end subroutine |
| end module |