! { dg-do run } ! PR libfortran/31210 program test implicit none integer :: l = 0 character(len=20) :: s write(s,'(A,I1)') foo(), 0 if (trim(s) /= "0") call abort contains function foo() character(len=l) :: foo foo = "XXXX" end function end program test