! { dg-do compile } ! PR fortran/96469 - make sure that all legal variants pass. module x implicit none contains subroutine sub_intent_in(i) integer, intent(in) :: i end subroutine sub_intent_in subroutine sub_intent_unspec(i) integer :: i end subroutine sub_intent_unspec integer function fcn_intent_in(i) integer, intent(in) :: i fcn_intent_in = i + 42 end function fcn_intent_in integer function fcn_intent_unspec (i) integer :: i fcn_intent_unspec = i + 42 end function fcn_intent_unspec end module x program main use x implicit none integer :: i1, i2, i3, i4 integer :: k, l do i1=1,10 call sub1 end do do i2=1,10 call sub2 end do do i3 = 1,10 k = fcn3() end do do i4=1,10 l = fcn4() end do contains subroutine sub1 call sub_intent_in (i1) end subroutine sub1 subroutine sub2 integer :: m m = fcn_intent_in (i2) print *,m end subroutine sub2 integer function fcn3() call sub_intent_unspec (i3) fcn3 = 42 end function fcn3 integer function fcn4() fcn4 = fcn_intent_unspec (i4) end function fcn4 end program main