! { dg-do compile } ! ! Contributed by Mark Eggleston subroutine f(a, b) integer :: a real :: b write(*,*) a, b end subroutine subroutine g(a, b) integer :: a character(*) :: b write(*,*) a, b end subroutine subroutine h interface subroutine f(a, b) ! { dg-error "\\(CHARACTER\\(\\*\\)/REAL\\(4\\)\\)" } integer :: a character(*) :: b end subroutine subroutine g(a, b) ! { dg-error "\\(REAL\\(4\\)/CHARACTER\\(\\*\\)\\)" } integer :: a real :: b end subroutine end interface call f(6, 6.0) call g(6, "abcdef") end subroutine subroutine f4(a, b) integer :: a real :: b write(*,*) a, b end subroutine subroutine g4(a, b) integer :: a character(*,4) :: b write(*,*) a, b end subroutine subroutine h4 interface subroutine f4(a, b) ! { dg-error "\\(CHARACTER\\(\\*,4\\)/REAL\\(4\\)\\)" } integer :: a character(*,4) :: b end subroutine subroutine g4(a, b) ! { dg-error "REAL\\(4\\)/CHARACTER\\(\\*,4\\)" } integer :: a real :: b end subroutine end interface call f4(6, 6.0) call g4(6, 4_"abcdef") end subroutine program test call h call h4 end program ! { dg-error "passed REAL\\(4\\) to CHARACTER\\(\\*\\)" "type mismatch" { target \*-\*-\* } 31 } ! { dg-error "passed CHARACTER\\(6\\) to REAL\\(4\\)" "type mismatch" { target \*-\*-\* } 32 } ! { dg-error "passed REAL\\(4\\) to CHARACTER\\(\\*,4\\)" "type mismatch" { target \*-\*-\* } 61 } ! { dg-error "passed CHARACTER\\(6,4\\) to REAL\\(4\\)" "type mismatch" { target \*-\*-\* } 62 }