1! { dg-do compile }
2!
3! PR 45290: [F08] pointer initialization
4!
5! Contributed by Janus Weil <janus@gcc.gnu.org>
6
7module m1
8 implicit none
9 type :: t
10   integer, pointer :: p
11   integer :: i
12 end type
13 integer, target :: i
14 type(t), target :: x
15 integer, pointer :: p1 => i
16 integer, pointer :: p2 => p1   ! { dg-error "must have the TARGET attribute" }
17 integer, pointer :: p3 => x%p  ! { dg-error "must have the TARGET attribute" }
18 integer, pointer :: p4 => x%i
19 integer, pointer :: p5 => u    ! { dg-error "has no IMPLICIT type" }
20end module m1
21
22
23module m2
24
25 type :: t
26   procedure(s), pointer, nopass :: ppc
27 end type
28 type(t) :: x
29 procedure(s), pointer :: pp1 => s
30 procedure(s), pointer :: pp2 => pp1    ! { dg-error "may not be a procedure pointer" }
31 procedure(s), pointer :: pp3 => t%ppc  ! { dg-error "Symbol 't' at .1. has no IMPLICIT type" }
32
33contains
34
35  subroutine s
36  end subroutine
37
38end module m2
39