! PR ipa/58290
! { dg-do compile }
! { dg-options "-O1 -fipa-pta" }
MODULE pr58290
TYPE b
CHARACTER(10) :: s = ''
END TYPE b
TYPE c
TYPE(b) :: d
END TYPE c
TYPE h
INTEGER, DIMENSION(:), POINTER :: b
END TYPE h
CONTAINS
SUBROUTINE foo(x, y)
LOGICAL, INTENT(IN) :: x
TYPE(c), INTENT(INOUT) :: y
END SUBROUTINE
FUNCTION bar (g) RESULT (z)
TYPE(h), INTENT(IN) :: g
TYPE(c) :: y
CALL foo (.TRUE., y)
z = SIZE (g%b)
END FUNCTION bar
SUBROUTINE baz (g)
TYPE(h), INTENT(INOUT) :: g
INTEGER :: i, j
j = bar(g)
DO i = 1, j
ENDDO
END SUBROUTINE baz
END MODULE