! PR tree-optimization/88964 ! { dg-do compile } ! { dg-options "-O3 -fno-tree-forwprop --param sccvn-max-alias-queries-per-access=1" } MODULE pr88964 INTEGER, PARAMETER :: dp=8 REAL(KIND=dp) :: p, q, o CONTAINS SUBROUTINE foo(a,b,c,f,h) IMPLICIT NONE INTEGER :: a, b, c REAL(KIND=dp) :: f(b*c), h(a*c) CALL bar(h) CALL baz(f) CALL qux(h) END SUBROUTINE foo SUBROUTINE bar(h) IMPLICIT NONE REAL(KIND=dp) :: h(1*1) INTEGER :: r, s, t, u DO u = 1,3 DO t = 1,1 DO s = 1,3 DO r = 1,1 h((t-1)*1+r) = h((t-1)*1+r)-p*o END DO END DO END DO END DO END SUBROUTINE bar SUBROUTINE baz(f) IMPLICIT NONE REAL(KIND=dp) :: f(3*1) INTEGER :: s, t, u DO u = 1,4 DO t = 1,1 DO s = 1,3 f((t-1)*3+s) = f((t-1)*3+s) - q END DO END DO END DO END SUBROUTINE baz SUBROUTINE qux(h) IMPLICIT NONE REAL(KIND=dp) :: h(1*1) INTEGER :: r, s, t, u DO u = 1,5 DO t = 1,1 DO s = 1,3 DO r = 1,1 h((t-1)*1+r) = h((t-1)*1+r)-p*o END DO END DO END DO END DO END SUBROUTINE qux END MODULE pr88964