1! PR tree-optimization/88964 2! { dg-do compile } 3! { dg-options "-O3 -fno-tree-forwprop --param sccvn-max-alias-queries-per-access=1" } 4 5MODULE pr88964 6 INTEGER, PARAMETER :: dp=8 7 REAL(KIND=dp) :: p, q, o 8CONTAINS 9 SUBROUTINE foo(a,b,c,f,h) 10 IMPLICIT NONE 11 INTEGER :: a, b, c 12 REAL(KIND=dp) :: f(b*c), h(a*c) 13 CALL bar(h) 14 CALL baz(f) 15 CALL qux(h) 16 END SUBROUTINE foo 17 SUBROUTINE bar(h) 18 IMPLICIT NONE 19 REAL(KIND=dp) :: h(1*1) 20 INTEGER :: r, s, t, u 21 DO u = 1,3 22 DO t = 1,1 23 DO s = 1,3 24 DO r = 1,1 25 h((t-1)*1+r) = h((t-1)*1+r)-p*o 26 END DO 27 END DO 28 END DO 29 END DO 30 END SUBROUTINE bar 31 SUBROUTINE baz(f) 32 IMPLICIT NONE 33 REAL(KIND=dp) :: f(3*1) 34 INTEGER :: s, t, u 35 DO u = 1,4 36 DO t = 1,1 37 DO s = 1,3 38 f((t-1)*3+s) = f((t-1)*3+s) - q 39 END DO 40 END DO 41 END DO 42 END SUBROUTINE baz 43 SUBROUTINE qux(h) 44 IMPLICIT NONE 45 REAL(KIND=dp) :: h(1*1) 46 INTEGER :: r, s, t, u 47 DO u = 1,5 48 DO t = 1,1 49 DO s = 1,3 50 DO r = 1,1 51 h((t-1)*1+r) = h((t-1)*1+r)-p*o 52 END DO 53 END DO 54 END DO 55 END DO 56 END SUBROUTINE qux 57END MODULE pr88964 58