! RUN: %python %S/test_errors.py %s %flang_fc1
! Tests for UNIT=function()
module m1
integer, target :: itarget
character(20), target :: ctarget
logical, target :: ltarget
interface gf
module procedure :: intf, pintf, pchf, logf, plogf
end interface
contains
integer function intf(n)
integer(1), intent(in) :: n
intf = n
end function
function pintf(n)
integer(2), intent(in) :: n
integer, pointer :: pintf
pintf => itarget
pintf = n
end function
function pchf(n)
integer(4), intent(in) :: n
character(:), pointer :: pchf
pchf => ctarget
end function
logical function logf(n)
integer(8), intent(in) :: n
logf = .true.
end function
function plogf(n)
integer(16), intent(in) :: n
logical, pointer :: plf
plf => ltarget
end function
subroutine test
write(intf(6_1),"('hi')")
write(pintf(6_2),"('hi')")
write(pchf(123_4),"('hi')")
write(gf(6_1),"('hi')")
write(gf(6_2),"('hi')")
write(gf(666_4),"('hi')")
!ERROR: I/O unit must be a character variable or a scalar integer expression
write(logf(666_8),"('hi')")
!ERROR: I/O unit must be a character variable or a scalar integer expression
write(plogf(666_16),"('hi')")
!ERROR: I/O unit must be a character variable or a scalar integer expression
write(gf(666_8),"('hi')")
!ERROR: I/O unit must be a character variable or a scalar integer expression
write(gf(666_16),"('hi')")
!ERROR: I/O unit must be a character variable or a scalar integer expression
write(null(),"('hi')")
end subroutine
end module