| ! { dg-do compile } |
| ! PR fortran/83515 - ICE: Invalid expression in gfc_element_size |
| ! PR fortran/85797 - ICE in gfc_element_size, at fortran/target-memory.c:126 |
| ! PR fortran/89904 - ICE in gfortran starting with r270045 |
| |
| recursive subroutine a |
| c = transfer (a, b) ! { dg-error "'SOURCE' argument of 'TRANSFER'" } |
| end |
| |
| recursive subroutine d |
| c = transfer (b, d) ! { dg-error "'MOLD' argument of 'TRANSFER'" } |
| end |
| |
| subroutine f |
| use, intrinsic :: iso_c_binding |
| integer(c_intptr_t) :: b, c |
| procedure(), pointer :: a |
| c = transfer (a, b) |
| c = transfer (transfer (b, a), b) |
| end |
| |
| module m |
| contains |
| function f () result (z) |
| class(*), pointer :: z |
| end function f |
| recursive subroutine s (q) |
| procedure(f) :: q |
| call s (q) |
| end subroutine s |
| end |