1! { dg-do run } 2! { dg-options "-O -fdump-tree-original" } 3program main 4 implicit none 5 character(len=4) :: c 6 integer :: n 7 integer :: i 8 integer :: k1, k2 9 common /foo/ i 10 11 n = 0 12 i = 0 13 k1 = 1 14 k2 = 3 15 c = 'abcd' 16 n = n + 1 ; if (c(1:2) == c(1:2)) call yes 17 n = n + 1 ; if (c(k1:k2) >= c(k1:k2)) call yes 18 n = n + 1 ; if (c(:2) <= c(1:2)) call yes 19 n = n + 1 ; if (c(k2:) .eq. c(k2:4)) call yes 20 n = n + 1 ; if (c(:) .ge. c) call yes 21 n = n + 1 ; if (c .le. c) call yes 22 if (c(1:2) /= c(1:2)) STOP 1 23 if (c(k1:k2) > c(k1:k2)) STOP 2 24 if (c(:2) < c(1:2)) STOP 3 25 if (c(:) .ne. c) STOP 4 26 if (c(:2) .gt. c(1:2)) STOP 5 27 if (c(1:2) .lt. c(:2)) STOP 6 28 if (n /= i) STOP 7 29end program main 30 31subroutine yes 32 implicit none 33 common /foo/ i 34 integer :: i 35 i = i + 1 36end subroutine yes 37 38! { dg-final { scan-tree-dump-times "gfortran_compare_string" 0 "original" } } 39 40