1! RUN: %S/test_errors.sh %s %t %flang -fopenmp 2! REQUIRES: shell 3! OpenMP Version 4.5 4! Check for cycle statements leaving an OpenMP structured block 5 6program omp_do 7 integer i, j, k 8 9 !$omp parallel 10 foo: do i = 0, 10 11 !$omp do 12 bar: do j = 0, 10 13 !ERROR: CYCLE to construct 'foo' outside of DO construct is not allowed 14 cycle foo 15 end do bar 16 !$omp end do 17 end do foo 18 !$omp end parallel 19 20 foo1: do i = 0, 10 21 !$omp parallel 22 foo2: do k = 0, 10 23 !$omp do 24 foo3: do j = 0, 10 25 !ERROR: CYCLE to construct 'foo1' outside of PARALLEL construct is not allowed 26 !ERROR: CYCLE to construct 'foo1' outside of DO construct is not allowed 27 cycle foo1 28 end do foo3 29 !$omp end do 30 end do foo2 31 !$omp end parallel 32 end do foo1 33 34 bar1: do i = 0, 10 35 !$omp parallel 36 bar2: do k = 0, 10 37 bar3: do j = 0, 10 38 !ERROR: CYCLE to construct 'bar1' outside of PARALLEL construct is not allowed 39 cycle bar1 40 end do bar3 41 end do bar2 42 !$omp end parallel 43 end do bar1 44 45end program omp_do 46