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