| ! { dg-do compile } |
| ! |
| ! PR fortran/43362 |
| ! |
| module m |
| implicit none |
| type t |
| integer, pointer :: a |
| end type t |
| type t2 |
| type(t) :: b |
| end type t2 |
| type t3 |
| type(t), pointer :: b |
| end type t3 |
| contains |
| pure subroutine foo(x) |
| type(t), target, intent(in) :: x |
| type(t2) :: y |
| type(t3) :: z |
| |
| ! The following gave an ICE but is valid: |
| y = t2(x) ! Note: F2003, C1272 (3) and (4) do not apply |
| |
| ! Variant which is invalid as C1272 (3) applies |
| z = t3(x) ! { dg-error "Invalid expression in the structure constructor" } |
| end subroutine foo |
| end module m |