| ! RUN: %python %S/test_symbols.py %s %flang_fc1 -fopenmp |
| ! OpenMP Version 4.5 |
| ! 2.7.1 Do Loop constructs. |
| |
| !DEF: /test MainProgram |
| program test |
| !DEF: /test/i ObjectEntity INTEGER(4) |
| !DEF: /test/j ObjectEntity INTEGER(4) |
| !DEF: /test/k ObjectEntity INTEGER(4) |
| integer i, j, k |
| !$omp do collapse(2) |
| !DEF: /test/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) |
| foo: do i=0,10 |
| !DEF: /test/Block1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) |
| foo1: do j=0,10 |
| !REF: /test/k |
| foo2: do k=0,10 |
| !REF: /test/Block1/i |
| select case (i) |
| case (5) |
| cycle foo1 |
| case (7) |
| cycle foo2 |
| end select |
| !REF: /test/Block1/i |
| !REF: /test/Block1/j |
| !REF: /test/k |
| print *, i, j, k |
| end do foo2 |
| end do foo1 |
| end do foo |
| |
| !$omp do collapse(2) |
| !DEF: /test/Block2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) |
| foo: do i=0,10 |
| !DEF: /test/Block2/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) |
| foo1: do j=0,10 |
| !REF: /test/k |
| foo2: do k=0,10 |
| !REF: /test/Block2/i |
| if (i<3) then |
| cycle foo1 |
| !REF: /test/Block2/i |
| else if (i>8) then |
| cycle foo1 |
| else |
| cycle foo2 |
| end if |
| !REF: /test/Block2/i |
| !REF: /test/Block2/j |
| !REF: /test/k |
| print *, i, j, k |
| end do foo2 |
| end do foo1 |
| end do foo |
| !$omp end do |
| end program test |