! { dg-do run } ! ! PR fortran/51055 ! PR fortran/49110 ! subroutine test() implicit none integer :: i = 5 character(len=:), allocatable :: s1 call sub(s1, i) if (len(s1) /= 5) call abort() if (s1 /= "ZZZZZ") call abort() contains subroutine sub(str,j) character(len=:), allocatable :: str integer :: j str = REPEAT("Z",j) if (len(str) /= 5) call abort() if (str /= "ZZZZZ") call abort() end subroutine sub end subroutine test program a character(len=:),allocatable :: s integer :: j=2 s = repeat ('x', j) if (len(repeat(' ',j)) /= 2) call abort() if (repeat('y',j) /= "yy") call abort() if (len(s) /= 2) call abort() if (s /= "xx") call abort() call test() end program a