! { dg-do compile } ! PR fortran/82796 ! Code contributed by ripero84 at gmail dot com module eq implicit none integer :: n1, n2 integer, dimension(2) :: a equivalence (a(1), n1) equivalence (a(2), n2) common /a/ a end module eq module m use eq implicit none type, public :: t integer :: i end type t end module m module p implicit none contains pure integer function d(h) use m implicit none integer, intent(in) :: h d = h end function end module p module q implicit none contains pure integer function d(h) use m, only : t implicit none integer, intent(in) :: h d = h end function end module q module r implicit none contains pure integer function d(h) use m, only : a ! { dg-error "cannot be an EQUIVALENCE object" } implicit none integer, intent(in) :: h d = h end function end module r