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