| ! 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 |