Add gfc_class_set_vptr.
[official-gcc.git] / libgomp / testsuite / libgomp.fortran / lastprivate1.f90
blob4eae92b39e8a7588989f1f06d1f1fe71da9edb5b
1 ! { dg-do run }
2 program lastprivate
3 integer :: i
4 common /c/ i
5 !$omp parallel num_threads (4)
6 call test1
7 !$omp end parallel
8 if (i .ne. 21) stop 1
9 !$omp parallel num_threads (4)
10 call test2
11 !$omp end parallel
12 if (i .ne. 64) stop 2
13 !$omp parallel num_threads (4)
14 call test3
15 !$omp end parallel
16 if (i .ne. 14) stop 3
17 call test4
18 call test5
19 call test6
20 call test7
21 call test8
22 call test9
23 call test10
24 call test11
25 call test12
26 contains
27 subroutine test1
28 integer :: i
29 common /c/ i
30 !$omp do lastprivate (i)
31 do i = 1, 20
32 end do
33 end subroutine test1
34 subroutine test2
35 integer :: i
36 common /c/ i
37 !$omp do lastprivate (i)
38 do i = 7, 61, 3
39 end do
40 end subroutine test2
41 function ret3 ()
42 integer :: ret3
43 ret3 = 3
44 end function ret3
45 subroutine test3
46 integer :: i
47 common /c/ i
48 !$omp do lastprivate (i)
49 do i = -10, 11, ret3 ()
50 end do
51 end subroutine test3
52 subroutine test4
53 integer :: j
54 !$omp parallel do lastprivate (j) num_threads (4) default (none)
55 do j = 1, 20
56 end do
57 if (j .ne. 21) stop 4
58 end subroutine test4
59 subroutine test5
60 integer :: j
61 !$omp parallel do lastprivate (j) num_threads (4) default (none)
62 do j = 7, 61, 3
63 end do
64 if (j .ne. 64) stop 5
65 end subroutine test5
66 subroutine test6
67 integer :: j
68 !$omp parallel do lastprivate (j) num_threads (4) default (none)
69 do j = -10, 11, ret3 ()
70 end do
71 if (j .ne. 14) stop 6
72 end subroutine test6
73 subroutine test7
74 integer :: i
75 common /c/ i
76 !$omp parallel do lastprivate (i) num_threads (4) default (none)
77 do i = 1, 20
78 end do
79 if (i .ne. 21) stop 7
80 end subroutine test7
81 subroutine test8
82 integer :: i
83 common /c/ i
84 !$omp parallel do lastprivate (i) num_threads (4) default (none)
85 do i = 7, 61, 3
86 end do
87 if (i .ne. 64) stop 8
88 end subroutine test8
89 subroutine test9
90 integer :: i
91 common /c/ i
92 !$omp parallel do lastprivate (i) num_threads (4) default (none)
93 do i = -10, 11, ret3 ()
94 end do
95 if (i .ne. 14) stop 9
96 end subroutine test9
97 subroutine test10
98 integer :: i
99 common /c/ i
100 !$omp parallel num_threads (4) default (none) shared (i)
101 !$omp do lastprivate (i)
102 do i = 1, 20
103 end do
104 !$omp end parallel
105 if (i .ne. 21) stop 10
106 end subroutine test10
107 subroutine test11
108 integer :: i
109 common /c/ i
110 !$omp parallel num_threads (4) default (none) shared (i)
111 !$omp do lastprivate (i)
112 do i = 7, 61, 3
113 end do
114 !$omp end parallel
115 if (i .ne. 64) stop 11
116 end subroutine test11
117 subroutine test12
118 integer :: i
119 common /c/ i
120 !$omp parallel num_threads (4) default (none) shared (i)
121 !$omp do lastprivate (i)
122 do i = -10, 11, ret3 ()
123 end do
124 !$omp end parallel
125 if (i .ne. 14) stop 12
126 end subroutine test12
127 end program lastprivate