1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
! PR rtl-optimization/38722
! { dg-do compile }
! { dg-options "-O1" }
SUBROUTINE foo(x, n, ga, gc, vr)
TYPE pt
DOUBLE PRECISION, DIMENSION (:, :, :), POINTER :: cr
END TYPE pt
TYPE pu
TYPE(pt), POINTER :: pw
END TYPE pu
LOGICAL, INTENT(in) :: x, ga, gc
INTEGER :: i, n
LOGICAL :: dd, ep, fe
TYPE(pu) :: vr
TYPE(pu), DIMENSION(:), POINTER :: v
IF (.NOT. fe) THEN
IF (ga) THEN
CALL bar (dd, ep, gc)
END IF
IF (x .AND. .NOT. ga) THEN
IF (gc) THEN
DO i=1,n
CALL baz (v(i), x, gc)
v(i)%pw%cr = 1.0
END DO
DO i=1,n
IF (ep) THEN
IF (dd) THEN
IF (i==1) THEN
v(i)%pw%cr=v(i)%pw%cr + vr%pw%cr
ENDIF
END IF
END IF
END DO
END IF
ENDIF
END IF
END SUBROUTINE foo
|