https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63674
--- Comment #2 from janus at gcc dot gnu.org --- Test case for ordinary procedure pointers: module test interface function func_interface ( ) RESULT( reslt ) INTEGER :: reslt end function func_interface end interface contains function func_1 ( ) RESULT( reslt ) integer :: reslt reslt = 1 end function func_1 pure subroutine eval( reslt ) integer, intent(out) :: reslt procedure(func_interface), pointer :: f f=>func_1 reslt = f() ! reslt = func_1() end subroutine eval end module test program prog use test integer :: reslt call eval(reslt) write(*,*) reslt end program prog This gives the expected error message with 4.9 and trunk, which shows that the problem only occurs for PPCs.