1! { dg-do run }
2!
3! PR 45290: [F08] pointer initialization
4!
5! Contributed by Janus Weil <janus@gcc.gnu.org>
6
7module m
8 integer, target  :: t1          ! SAVE is implicit
9 integer, pointer :: p1 => t1
10end module m
11
12
13use m
14implicit none
15
16integer,target :: i0 = 2
17integer,target,dimension(1:3) :: vec = 1
18
19type :: t
20  integer, pointer :: dpc => i0
21  integer :: i = 0
22end type
23
24type (t), save, target :: u
25
26integer, pointer :: dp => i0
27integer, pointer :: dp2 => vec(2)
28integer, pointer :: dp3 => u%i
29
30dp = 5
31if (i0/=5) call abort()
32
33u%dpc = 6
34if (i0/=6) call abort()
35
36dp2 = 3
37if (vec(2)/=3) call abort()
38
39dp3 = 4
40if (u%i/=4) call abort()
41
42end
43