! PR fortran/39865
! { dg-do run }

subroutine foo (a)
  integer(kind=4) :: a(1, 3)
  character(len=40) :: t
  write (t, fmt=a(1,2)) 1, 2, 3, 4, 5, 6, 7, 8
  if (t .ne. '   1   2   3   4   5   6   7   8') call abort
end subroutine foo
  interface
    subroutine foo (a)
      integer(kind=4) :: a(1, 3)
    end subroutine foo
  end interface
  integer(kind=4) :: b(1,3)
  character(len=40) :: t
  b(1,1) = 4HXXXX
  b(1,2) = 4H (8I
  b(1,3) = 2H4)
  write (t, fmt=b(1,2)) 1, 2, 3, 4, 5, 6, 7, 8
  if (t .ne. '   1   2   3   4   5   6   7   8') call abort
  call foo (b)
end

! { dg-warning "Non-character in FORMAT tag" "FMT" { target *-*-* } 7 }
! { dg-warning "Non-character in FORMAT tag" "FMT" { target *-*-* } 20 }

! { dg-warning "Hollerith constant" "const" { target *-*-* } 17 }
! { dg-warning "Conversion" "conversion" { target *-*-* } 17 }

! { dg-warning "Hollerith constant" "const" { target *-*-* } 18 }
! { dg-warning "Conversion" "conversion" { target *-*-* } 18 }

! { dg-warning "Hollerith constant" "const" { target *-*-* } 19 }
! { dg-warning "Conversion" "conversion" { target *-*-* } 19 }
