1! { dg-do run } 2! Check that substrings behave correctly even when zero-sized 3 implicit none 4 character(len=10) :: s, t 5 integer :: i, j 6 7 s = "abcdefghij" 8 t(:10) = s(1:) 9 s(6:5) = "foo" 10 if (s /= t) call abort 11 i = 2 12 j = -1 13 s(i:i+j) = "foo" 14 if (s /= t) call abort 15 i = 20 16 s(i+1:i) = "foo" 17 if (s /= t) call abort 18 s(6:5) = s(7:5) 19 if (s /= t) call abort 20 s = t(7:6) 21 if (len(trim(s)) /= 0) call abort 22 if (len(t(8:4)) /= 0) call abort 23 if (len(trim(t(8:4))) /= 0) call abort 24 end 25