tree-optimization/113385 - wrong loop father with early exit vectorization
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / pr44847.f90
blob3da4311499ebab73785b88123af9cfe72be0f9f9
1 ! PR fortran/44847
2 ! { dg-do compile }
3 ! { dg-options "-fopenmp" }
5 subroutine pr44847_1
6 integer :: i, j
7 !$omp parallel do collapse(2)
8 l:do i = 1, 2
9 do j = 1, 2
10 cycle l ! { dg-error "CYCLE statement" }
11 end do
12 end do l
13 end subroutine
14 subroutine pr44847_2
15 integer :: i, j, k
16 !$omp parallel do collapse(3)
17 do i = 1, 2
18 l:do j = 1, 2
19 do k = 1, 2
20 cycle l ! { dg-error "CYCLE statement" }
21 end do
22 end do l
23 end do
24 end subroutine
25 subroutine pr44847_3
26 integer :: i, j
27 !$omp parallel do
28 l:do i = 1, 2
29 do j = 1, 2
30 cycle l
31 end do
32 end do l
33 end subroutine
34 subroutine pr44847_4
35 integer :: i, j, k
36 !$omp parallel do collapse(2)
37 do i = 1, 2
38 l:do j = 1, 2
39 do k = 1, 2
40 cycle l
41 end do
42 end do l
43 end do
44 end subroutine
45 subroutine pr44847_5
46 integer :: i, j
47 !$omp parallel do collapse(2)
48 l:do i = 1, 2
49 do j = 1, 2
50 exit l ! { dg-error "EXIT statement" }
51 end do
52 end do l
53 end subroutine
54 subroutine pr44847_6
55 integer :: i, j, k
56 !$omp parallel do collapse(3)
57 do i = 1, 2
58 l:do j = 1, 2
59 do k = 1, 2
60 exit l ! { dg-error "EXIT statement" }
61 end do
62 end do l
63 end do
64 end subroutine
65 subroutine pr44847_7
66 integer :: i, j, k
67 !$omp parallel do collapse(2)
68 do i = 1, 2
69 l:do j = 1, 2
70 do k = 1, 2
71 exit l ! { dg-error "EXIT statement" }
72 end do
73 end do l
74 end do
75 end subroutine
76 subroutine pr44847_8
77 integer :: i, j, k
78 !$omp parallel do
79 do i = 1, 2
80 l:do j = 1, 2
81 do k = 1, 2
82 exit l
83 end do
84 end do l
85 end do
86 end subroutine