1! { dg-do run }
2! { dg-options "-O3" }
3! From forall_12.f90
4! Fails with loop reversal at -O3
5!
6  character(len=1) :: b(4) = (/"1","2","3","4"/), c(4)
7  c = b
8  i = 1
9  ! This statement must be here for the abort below
10  b(1:3)(i:i) = b(2:4)(i:i)
11
12  b = c
13  b(4:2:-1)(i:i) = b(3:1:-1)(i:i)
14
15  ! This fails.  If the condition is printed, the result is F F F F
16  if (any (b .ne. (/"1","1","2","3"/))) i = 2
17  print *, b
18  print *, b .ne. (/"1","1","2","3"/)
19  if (i == 2) STOP 1
20end
21