1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
! { 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
|