summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr101762.f90
blob: 9ffd7540d8176a959c389597d8a15e38433fde59 (plain)
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