1! RUN: %S/test_symbols.sh %s %t %flang_fc1 -fopenmp
2! REQUIRES: shell
3! OpenMP Version 4.5
4! 2.7.1 Do Loop constructs.
5
6!DEF: /omp_cycle MainProgram
7program omp_cycle
8  !$omp do  collapse(1)
9  !DEF: /omp_cycle/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
10  do i=0,10
11    cycle
12    !DEF: /omp_cycle/j (Implicit) ObjectEntity INTEGER(4)
13    do j=0,10
14      !DEF: /omp_cycle/k (Implicit) ObjectEntity INTEGER(4)
15      do k=0,10
16        !REF: /omp_cycle/Block1/i
17        !REF: /omp_cycle/j
18        !REF: /omp_cycle/k
19        print *, i, j, k
20      end do
21    end do
22  end do
23  !$omp end do
24
25  !$omp do  collapse(1)
26  !DEF: /omp_cycle/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
27  do i=0,10
28    !REF: /omp_cycle/j
29    do j=0,10
30      cycle
31      !REF: /omp_cycle/k
32      do k=0,10
33        !REF: /omp_cycle/Block2/i
34        !REF: /omp_cycle/j
35        !REF: /omp_cycle/k
36        print *, i, j, k
37      end do
38    end do
39  end do
40  !$omp end do
41
42  !$omp do  collapse(2)
43  !DEF: /omp_cycle/Block3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
44  do i=0,10
45    !DEF: /omp_cycle/Block3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
46    do j=0,10
47      !REF: /omp_cycle/k
48      do k=0,10
49        cycle
50        !REF: /omp_cycle/Block3/i
51        !REF: /omp_cycle/Block3/j
52        !REF: /omp_cycle/k
53        print *, i, j, k
54      end do
55    end do
56  end do
57  !$omp end do
58
59  !$omp do  collapse(3)
60  !DEF: /omp_cycle/Block4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
61  do i=0,10
62    !DEF: /omp_cycle/Block4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
63    do j=0,10
64      !DEF: /omp_cycle/Block4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
65      do k=0,10
66        cycle
67        !REF: /omp_cycle/Block4/i
68        !REF: /omp_cycle/Block4/j
69        !REF: /omp_cycle/Block4/k
70        print *, i, j, k
71      end do
72    end do
73  end do
74  !$omp end do
75
76  !$omp do  ordered(3)
77  !DEF: /omp_cycle/Block5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
78  foo:do i=0,10
79    !DEF: /omp_cycle/Block5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
80    foo1:do j=0,10
81      !DEF: /omp_cycle/Block5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
82      foo2:do k=0,10
83        cycle foo2
84        !REF: /omp_cycle/Block5/i
85        !REF: /omp_cycle/Block5/j
86        !REF: /omp_cycle/Block5/k
87        print *, i, j, k
88      end do foo2
89    end do foo1
90  end do foo
91  !$omp end do
92end program omp_cycle
93