! { dg-do compile } ! ! PR 36947: Attributes not fully checked comparing actual vs dummy procedure ! ! Original test case by Walter Spector ! Modified by Janus Weil module testsub contains subroutine test(sub) interface subroutine sub(x) integer, intent(in), optional:: x end subroutine end interface call sub() end subroutine end module module sub contains subroutine subActual(x) ! actual subroutine's argment is different in intent integer, intent(inout),optional:: x end subroutine subroutine subActual2(x) ! actual subroutine's argment is missing OPTIONAL integer, intent(in):: x end subroutine end module program interfaceCheck use testsub use sub integer :: a call test(subActual) ! { dg-error "INTENT mismatch in argument" } call test(subActual2) ! { dg-error "OPTIONAL mismatch in argument" } end program