! 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