http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55476
--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-11-27 19:21:09 UTC --- Too simple patch. It won't work in the following case: module m integer, pointer :: p contains subroutine test integer, target :: t p => t contains subroutine sub() if (p /= 0) return end subroutine end subroutine end module m