Implementation of Do loop iteration variable check, Do while loop check, Do loop cycle restrictions. Also to check whether the ordered clause is present on the loop construct if any ordered region ever binds to a loop region arising from the loop construct. Files: check-omp-structure.h check-omp-structure.cpp resolve-directives.cpp Testcases: omp-do06-positivecases.f90 omp-do06.f90 omp-do08.f90 omp-do09.f90 omp-do10.f90 omp-do11.f90 omp-do12.f90 omp-do13.f90 omp-do14.f90 omp-do15.f90 omp-do16.f90 omp-do17.f90 Reviewed by: Kiran Chandramohan @kiranchandramohan , Valentin Clement @clementval Differential Revision: https://reviews.llvm.org/D92732
37 lines
891 B
Fortran
37 lines
891 B
Fortran
! RUN: %S/test_symbols.sh %s %t %f18 -fopenmp
|
|
! OpenMP Version 4.5
|
|
! 2.7.1 Do Loop Constructs
|
|
|
|
!DEF: /omp_do MainProgram
|
|
program omp_do
|
|
!DEF: /omp_do/i ObjectEntity INTEGER(4)
|
|
!DEF: /omp_do/j ObjectEntity INTEGER(4)
|
|
!DEF: /omp_do/k ObjectEntity INTEGER(4)
|
|
integer i, j, k
|
|
!$omp do
|
|
!DEF: /omp_do/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
|
|
do i=1,10
|
|
!REF: /omp_do/j
|
|
do j=1,10
|
|
!REF: /omp_do/Block1/i
|
|
!REF: /omp_do/j
|
|
print *, "it", i, j
|
|
end do
|
|
end do
|
|
!$omp end do
|
|
end program omp_do
|
|
|
|
!DEF: /omp_do2 MainProgram
|
|
program omp_do2
|
|
!DEF: /omp_do2/i ObjectEntity INTEGER(4)
|
|
!DEF: /omp_do2/k ObjectEntity INTEGER(4)
|
|
integer :: i = 0, k
|
|
!$omp do
|
|
!DEF: /omp_do2/Block1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
|
|
do i=1,10
|
|
!REF: /omp_do2/Block1/i
|
|
print *, "it", i
|
|
end do
|
|
!$omp end do
|
|
end program omp_do2
|