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