@@ -0,0 +1,33 @@
+! 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