| ! { dg-do compile } |
| ! PR fortran/101762 - ICE on non-constant pointer initialization targets |
| ! Contributed by G.Steinmetz |
| |
| program p |
| integer, target :: a(3) = [7, 8, 9] |
| integer, pointer :: x => a(3) |
| integer, pointer :: y => a(n()) ! { dg-error "constant expression" } |
| integer, pointer :: z(:) => a(:n()) ! { dg-error "constant expression" } |
| character(7), target :: c = "abcdefg" |
| character(3), pointer :: c0 => c(2:4) |
| character(3), pointer :: c1 => c(m():) ! { dg-error "constant expression" } |
| character(3), pointer :: c2 => c(:m()) ! { dg-error "constant expression" } |
| print *, x, y |
| contains |
| pure integer function k () |
| k = 2 |
| end function k |
| subroutine s () |
| integer, pointer :: yy => a(k()) ! { dg-error "constant expression" } |
| print *, yy |
| end subroutine s |
| end |