nvptx, libgfortran: Switch out of "minimal" mode
[official-gcc.git] / gcc / testsuite / gfortran.dg / PR100132.f90
blob78ae6702810f5e5717b32bf7c24291e8b936435f
1 ! { dg-do run }
3 ! Test the fix for PR100132
6 module main_m
7 implicit none
9 private
11 public :: &
12 foo_t
14 public :: &
15 set, &
16 get
18 type :: foo_t
19 integer :: i
20 end type foo_t
22 type(foo_t), save, pointer :: data => null()
24 contains
26 subroutine set(this)
27 class(foo_t), pointer, intent(in) :: this
29 if(associated(data)) stop 1
30 data => this
31 end subroutine set
33 subroutine get(this)
34 type(foo_t), pointer, intent(out) :: this
36 if(.not.associated(data)) stop 4
37 this => data
38 nullify(data)
39 end subroutine get
41 end module main_m
43 program main_p
45 use :: main_m, only: &
46 foo_t, set, get
48 implicit none
50 integer, parameter :: n = 1000
52 type(foo_t), pointer :: ps
53 type(foo_t), target :: s
54 integer :: i, j, yay, nay
56 yay = 0
57 nay = 0
58 do i = 1, n
59 s%i = i
60 call set(s)
61 call get(ps)
62 if(.not.associated(ps)) stop 13
63 j = ps%i
64 if(i/=j) stop 14
65 if(i/=s%i) stop 15
66 if(ps%i/=s%i) stop 16
67 if(associated(ps, s))then
68 yay = yay + 1
69 else
70 nay = nay + 1
71 end if
72 end do
73 if((yay/=n).or.(nay/=0)) stop 17
75 end program main_p