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