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